0

我是一名新的 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 时,它工作得很好。有没有人见过这个?非常感谢您的帮助。

4

1 回答 1

1

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

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

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

于 2012-07-04T03:40:38.547 回答