我是从事某些旧代码的新iOS开发人员。我从代码中学到了启动新屏幕的方法:

SomeViewController* view = [[SomeViewController alloc] initWithNibName:@"SomeViewController" bundle:[NSBundle mainBundle]];
[self.navigationController pushViewController:view animated:YES];
[view release];


我有一个从屏幕A启动的屏幕B。我需要进一步从屏幕B启动一个屏幕C。流程为A-> B->C。当我执行B-> C时,应用程序冻结,屏幕看起来像这个:



但是,当我执行A-> C时,它运行良好。有没有人见过这个?非常感谢您的帮助。

最佳答案

不看更多代码就很难说出真正的问题是什么。但是,我确实注意到两个问题:


将视图控制器推入UINavigationController堆栈时,通常会看到显示导航栏。您的屏幕截图中没有看到导航栏。您可能需要嵌入UINavigationController。
其中一项评论已经提到了这一点。将UIView推送到UIViewController堆栈是未定义的操作-您应该推送UIViewController。例如:

[self.navigationController pushViewController:myViewControllerForViewC动画:是];

10-06 08:49