0

这工作得很好:

[(UINavigationController*)viewController setViewControllers:[NSArray arrayWithObject:cvc] animated:YES];

但这会导致我的应用程序崩溃:

[(UINavigationController*)viewController setViewControllers:[NSArray arrayWithObject:cvc] animated:NO];

我在其他部分使用的同一行带有不同的带有动画的viewController:NO,它工作正常。我错过了什么还是一个错误?

4

2 回答 2

0

Apple 仅在动画设置为 YES 的情况下提供了此功能的文档。

- (void)setViewControllers:(NSArray *)viewControllers animated:(BOOL)animated __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_3_0); // 如果动画为 YES,则根据新的顶视图控制器之前是否在堆栈中模拟推送或弹出。

我认为当您将动画设置为“否”时,新的顶级 NavigationController 尚未初始化并正确加载,直到动画完成。

于 2012-11-07T07:26:07.590 回答
0

如果您将视图控制器设置为 rootViewController 然后执行此操作

yourNavigationController=[[UINavigationController alloc]initWithRootViewController:cvc];

然后当你想去 newViewController 然后使用pushViewController

[self.navigationController pushViewController:yourViewObject animated:YES];
于 2012-11-07T07:05:03.027 回答