所以经过大量研究后终于找到了允许我更改为另一个视图而不会给我任何错误的代码:
UIViewController * vc = [self.storyboard instantiateViewControllerWithIdentifier:@"gameOverPage"];
[[[[UIApplication sharedApplication] delegate] window] setRootViewController:vc];
此代码的唯一问题是没有动画。如果可能的话,我想以某种方式将交叉溶解动画添加到此。
另一个主要问题是它显示了两次视图(有时是三次)。所以它转到第二个视图,然后不到一秒钟,它再次显示页面。我知道这是因为重新加载了iAd,当我按下一个转到另一个页面的按钮时,它会被第二页再次打断。
答案 0 :(得分:0)
要将视图更改为另一个视图(导航),您不需要setRootViewController:
始终将其设置为根视图控制器。
您可以使用UINavigationController
并以root身份设置UIViewController
,然后更改导航控制器的视图使用pushViewController:
方法,例如
//Pre condition - already a viewController is root view controller of navigation controller.
UIViewController * vc = [self.storyboard instantiateViewControllerWithIdentifier:@"gameOverPage"];
[self.navigationController pushViewController:vc animted:YES];
另一种方式是,
[self presentViewController:vc animated:YES completion:nil];