我正在尝试编写一个具有多个不同(子)应用程序的iphone应用程序。理想情况下,我想知道如何使这个应用程序的主菜单外观和行为像iPhone的自己的应用程序菜单,但我无法弄清楚。如果有人知道这样做的包裹或库,请告诉我。 B计划是使用UIButton模拟一个,这里是我遇到问题的地方。
基本上,当我按下一个应该按下新视图的按钮时,它会调用push方法,但我仍然会看到顶视图。
在app委托中,我有类似的内容:
AppViewController * viewController;
App1ViewController * app1ViewController;
UINavigationController * navController;
和didFinishLaunching方法,如:
viewController = [[AppViewController alloc] initWithAppDelegate:self];
app1ViewController = [[App1ViewController alloc] initWithAppDelegate:self];
navController = [[UINavigationController alloc] initWithRootViewController:viewController];
[window addSubview:viewController.view];
和2种方法
- (void)app1 {[navController pushViewController:app1ViewController animated:YES];}
- (void)back {[navController popViewControllerAnimated:YES];}
然后我在AppViewController.h中有2个viewcontrollers
@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;
@end
为每个viewcontroller定义一个loadView。但是,当我按下app1按钮并调用app1方法时,它表示视图已被推送,但我的视图仍然是按钮视图,即根视图。如果我再次按下按钮,它会告诉我我无法重新推出app1view,这是我看不到的。有任何想法吗?如果有帮助,我可以发布完整的代码。
感谢您的时间。
答案 0 :(得分:0)
没关系,我真是个傻瓜!罪魁祸首是:
[window addSubview:viewController.view];
我将视图控制器添加到窗口的子视图中。我应该添加navController而不是
[window addSubview:navController.view];
现在它可以在我的窗口上推送和弹出视图,呃!大声笑