0

我正在尝试编写一个具有多个不同(子)应用程序的 iphone 应用程序。理想情况下,我想知道如何使这个应用程序的主菜单看起来和表现得像 iphone 自己的应用程序菜单,但我想不通。如果有人知道这样做的包或库,请告诉我。计划 B 是使用 UIButtons 模拟一个,这就是我遇到问题的地方。

基本上,当我按下一个应该推送新视图的按钮时,它会调用 push 方法,但我仍然看到顶视图。

在应用程序委托中,我有类似的东西:

AppViewController *viewController;
App1ViewController *app1ViewController;
UINavigationController *navController;

在 didFinishLaunching 方法中,类似:

viewController = [ [ AppViewController alloc ] initWithAppDelegate: self ];
app1ViewController = [ [App1ViewController alloc] initWithAppDelegate: self ];
navController = [ [ UINavigationController alloc ] initWithRootViewController:viewController];
[窗口添加子视图:viewController.view];

和2种方法

-(void)app1{[ navController pushViewController: app1ViewController 动画:YES ];}
-(void)back{[ navController popViewControllerAnimated:YES ];}

然后我在 AppViewController.h 中有 2 个视图控制器

@interface AppViewController : UIViewController {
UINavigationController *navController;
UIButton *appbtn1, *appbtn2, *appbtn3, *appbtn4;
}
-(id)initWithAppDelegate:(id)appDelegate;
@end
@interface App1ViewController : UIViewController {
UITextView *textView;
UINavigationController *navController;
}
-(id)initWithAppDelegate:(id)appDelegate;
@结尾

并为每个视图控制器定义一个 loadView。但是,当我按下 app1 按钮并调用 app1 方法时,它说视图已被推送,但我的视图仍然是按钮视图,即根视图。如果我再次按下该按钮,它会告诉我无法重新推送 app1view,即我看不到的那个。有任何想法吗?如果有帮助,我可以发布完整的代码。

感谢您的时间。

4

1 回答 1

0

没关系,我就是个傻逼!!!罪魁祸首是:

[窗口添加子视图:viewController.view];

我将视图控制器添加到窗口的子视图中。我应该添加 navController

[窗口 addSubview:navController.view];

现在它可以在我的窗口上推送和弹出视图了,呵呵!哈哈

于 2010-05-03T18:06:20.383 回答