0

在为 iPad 和 iPhone 开发应用程序时,我遇到了一个非常烦人的问题。

我希望我的导航控制器(由故事板设置)推送一个显示一些详细信息的视图控制器。

以下代码曾经有效,但现在我在 iPhone 上推动控制器时遇到黑屏,而完全相同的代码在 iPad 上可以正常工作。所有使用的控制器都是非零值。发生的情况是显示使用导航控制器更改视图的通常动画,但之后只有黑屏。

ADetailViewController* detailController =
    [self.storyboard instantiateViewControllerWithIdentifier:@"ADetailViewController"];
    exposeController.data = aRealEstate;
    exposeController.appData = self.appData;
    [self.navigationController pushViewController: detailController animated:YES];

我对代码进行了一些调试并注意到,调用了 ADetailViewController 类的 viewDidLoad,但没有调用 viewDidAppear,这意味着显示了详细信息视图(我也通过黑屏注意到了 :-))

我会很感激这个问题的一种提示。

更新

我设法自己解决了这个问题。造成这种情况的原因是我在委托依赖项中构建了一个循环依赖项。当 rootView 将被隐藏时,这用于弹出推送的视图。

4

2 回答 2

1

您正在使用情节提要,那么为什么不使用 segues 呢?

视图控制器的所有实例化都是通过执行 segue 来处理的。您可以在 中方便地进行所有自定义prepareForSegue:

我相信您的错误是由 iPhone 和 iPad 故事板中的不同配置引起的。如果您决定使用 segue,则推送视图控制器的过程会更加透明,您将能够更轻松地找到问题。

于 2013-01-21T12:38:21.357 回答
0

我有两个建议给你:

  1. 你试过清理你的项目吗?
  2. 也许ADetailViewController标识符不是 a UIViewController,也许是因为标识符已存储在 iPhone 故事板中的错误字段中。

祝你好运

于 2013-01-21T12:41:48.083 回答