此代码自iOS 4以来一直运行良好。我正在执行位于主视图控制器下方的首选项UITableViewController。当按下prefs按钮时,主视图向左滑动,显示prefs表视图。很简单。在子视图上呈现UIAlertController导致iOS 8中的窗口层次结构警告
其中一个首选项提出了UIActionSheet。问题是,在iOS 8中,UIActionSheet已弃用。好的,所以简单的事情就是转移到UIAlertController。那么,问题是,当我点击那个是应该弹出UIAlertController行,我得到这个:
Warning: Attempt to present <UIAlertController: 0x7cab8bf0> on <PrefsTableController: 0x7be5c5b0> whose view is not in the window hierarchy!
这并不在iOS 6中或iOS 7
的代码的地方发生该偏好vc是:
[self.window insertSubview:prefsTableController.view belowSubview:viewController.view];
没什么,它的效果很好。问题是,我不明白为什么视图现在被认为是在iOS 8中被分离,当我明确地将它放置在视图层次结构中。
呈现的UIAlertContoller的代码是:
[self presentViewController:view animated:YES completion:nil];
所以,我在一个总损失就在这里。如果我明确地将视图B放在视图A下,为什么我被告知视图B不在视图层次中?
谢谢。
什么是'self'在'[self presentViewController:view animated:YES completion:nil];' – Kamchatka 2014-10-02 18:59:02
底部首选项视图控制器。 – 2014-10-02 18:59:45
我使用了Xcode 6 3D窗口层次结构显示视图,它实际上位于正确的位置。 – 2014-10-02 19:22:36