我正在尝试从UIViewController
或viewWillAppear
viewDidAppear
推送ViewController
(被叫A)(被称为B)。哪个工作正常。
但是当我弹出A ... B不会再次推动它(A)(或者我可以说它没有显示它的视图)......但是当我为我的{{禁用AutoLayout后尝试相同时... 1}},弹出后再次按A。
我有3个解决方案来解决这个问题...但我不知道为什么会这样。任何人请更新我这个问题。提前致谢。
启用自动布局时
Storyboard
根据代码,rootViewController将再次推送demoViewController,但它没有显示demoViewController,而navigationController在其堆栈中有demoViewController。
禁用自动布局时
我们假设一切正常。
答案 0 :(得分:1)
请参阅此问题中给出的答案:Pushing view controller within viewDidAppear doesn't work
在我的情况下,您所描述的内容正在禁用自动布局。这有帮助
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 250 * USEC_PER_SEC), dispatch_get_main_queue(), ^{
[self.navigationController pushViewController:[self.storyboard instantiateViewControllerWithIdentifier:@"myScreen"] animated:YES];
});
答案 1 :(得分:0)
我不知道您在IB或代码中定义的视图(以及大小)。开发人员必须掌握有关在IB中使用AutoLayout功能的知识,否则会导致代码中出现非常令人讨厌(意外)的错误。
所以,我强烈建议您阅读这个AutoLayout指南:here我想viewcontroller A的视图中的限制是给出了错误。
更准确地说,请转到此页面:Working with Constraints in Interface Builder
所以,没有尝试可以或应该从这个链接中清楚。
答案 2 :(得分:0)
您想在view Controller
或viewDidAppear
中将viewWillAppear
推送到另一个storyboard
。因为在你想要回来之后必须设置变量......
您是否在{{1}}中设置了约束?因为它可以成为它。