如果我使用instantiateViewControllerWithIdentifier在iOS中显示一个viewcontroller,我就不能离开viewcontroller而不会崩溃。视图加载正常并执行其任务但是当我尝试通过按下按钮离开时,应用程序崩溃。这是因为某些州错了还是我犯了另一个错误?
代码:
- (IBAction)push:(id)sender {
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:[[NSBundle mainBundle].infoDictionary objectForKey:@"UIMainStoryboardFile"] bundle:[NSBundle mainBundle]];
NSLog(@"story: %@",mainStoryboard.description);
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
ListViewController *controller = (ListViewController*)[mainStoryboard instantiateViewControllerWithIdentifier: @"ListId"];
appDelegate.window.rootViewController = controller;
}
答案 0 :(得分:0)
由于按下前一个根视图控制器上的按钮,您正在更改应用程序根视图控制器。这并不是真的应该如何在iOS应用程序中进行导航。相反,请尝试将根视图控制器嵌入UINavigationController,然后通过push
和pop
视图控制器在您的应用中导航。
如果您的界面不适合导航范例,则可以使用presentViewController:animated:completion:
。
无论如何,您应该阅读View Controller Programming Guide,因为它解决了显示视图的最佳做法。