我刚刚更新到xcode 6.2并且在显示一个新创建的视图(在名为myController的视图控制器中)时遇到问题,该问题通过以下方式调用:
[self.navigationController pushViewController:myController animated:YES];
viewDidLoad
和viewWillAppear
在myController
中都被称为正常(即在控制台中看到NSlog
输出)但由于某种原因,创建的XIB的接口保持空白。导航控件有效,位于空白屏幕上方。在模拟器和设备上运行时会发生这种情况。
旧的视图控制器在同一个应用程序中通过相同的方式调用时没有出现此问题。有趣的是,会显示动态生成的视图,但在界面构建器中创建的新视图会保持空白。我曾尝试复制旧的XIB并创建一个新的XIB,但不会显示界面(带一个按钮的简单屏幕)。
已经执行了调整root控制器中新视图的所有步骤,似乎不会显示XIB。控制台中绝对没有错误输出,表明出现了任何问题。
要检查的任何想法,变通方法,日志文件? (除了使用旧版本的xcode)。
感谢
答案 0 :(得分:0)
如果您从不使用AutoLayout的旧XIB文件复制视图,并且新的XIB / Storyboard确实如此,那么布局约束可能会混乱。检查您当前的XIB / Storyboard是否使用自动退出和disable it,或者为所有视图和子视图正确设置。
编辑:
对于包含按钮的新XIB,请确认在文件检查器中取消选中自动布局按钮,以确保您没有使用AutoL ayout -
答案 1 :(得分:0)
线程发起人在这里.......我最终通过明确调用
来显示它myController = [[myController alloc] init];
之前
[self.navigationController pushViewController:myController animated:YES];
对于以前的视图控制器,alloc似乎是隐式完成的。不确定如何/为什么。感谢所有回复的人。