0

如果我在 iOS 中使用 instantiateViewControllerWithIdentifier 显示视图控制器,我无法离开视图控制器而不会崩溃。视图加载正常并执行其任务,但是当我尝试通过按下按钮离开它时,应用程序崩溃。这是因为某些错误的状态还是我犯了另一个错误?

代码:

- (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;

}
4

1 回答 1

0

由于按下前一个根视图控制器上的按钮,您正在更改应用程序根视图控制器。iOS 应用程序中的导航实际上不应该如此。相反,尝试将您的根视图控制器嵌入UINavigationControllerpush中,然后pop通过它查看控制器以在您的应用程序中导航。

如果您的界面不适合导航范例,您可以使用presentViewController:animated:completion:. 无论如何,您应该阅读View Controller Programming Guide,因为它解决了显示视图的最佳实践。

于 2013-07-11T14:22:47.970 回答