这又是一个愚蠢的问题:( 我正在尝试创建一个示例应用程序,在应用程序加载时加载UIViewController,并且视图包含一个加载UINavigationViewController的按钮。
现在,我使用“基于窗口的应用程序”创建了一个项目,并在项目中添加了“.mt,.h和.xib”中的“RootViewController”。
接下来,我在“RootViewController.xib”文件中添加了一个视图和一个按钮,它运行正常。之后,我添加了“UIViewController子类”文件,命名为“NavViewController”,包含.h,.m和.xib文件。
另外我添加了 - (IBAction)buttonPressed :( id)发送者函数在“RootViewController”类中加载NavigationViewController。
以下是“buttonPressed:”的代码。
- (IBAction)buttonPressed:(id)sender {
NavViewController *navViewController = [[NavViewController alloc] initWithNibName:@"NavViewController" bundle:nil];
self.navController = navViewController;
[self.view insertSubview:navViewController.view atIndex:0];
[navViewController release];
}
当我“构建并开始”时,它最初运行正常,直到我按下按钮。当我按下按钮时,程序会终止它。
我做错了什么?请帮忙......
谢谢。
答案 0 :(得分:1)
你做错了什么?以非标准方式设计您的应用程序 - 您不应该这样做 - NavigationController负责!
为什么你会有一个按钮然后添加一个导航控制器? - 这违反了用户界面指南。我发现开始时很难掌握界面指南,但你必须这样做,因为它会让你的应用程序更加实用。
如果您需要导航控制器,则将其添加到视图中以开始 - 或使用导航控制器创建新视图。老实说,尝试一下,你会觉得用户界面感觉好多了。
如果您真的想要一个向窗口添加导航控制器的按钮,请执行以下操作:
答案 1 :(得分:0)
navController在笔尖中没有设置视图。 UINavigationcontroller需要一个根视图。在笔尖中,将导航控制器连接到另一个视图控制器。
答案 2 :(得分:0)
除了上面提到的修复,你真正想做的是创建导航控制器中包含的第一个视图控制器 - 但隐藏导航栏直到按下按钮导致它取消隐藏。您无法轻松地将导航控制器添加到您所在的视图中。