我有一个UIStoryboard
由4到5组成的ViewControllers
。这些ViewControllers
通过推缝相互连接。该故事板未嵌入其中NavigationController
。
现在,我必须UIStoryboard
在我的应用程序中的两种不同情况下使用它。
这UIStoryboard
被推入ViewController
已经在a内的a内,NavigationController
所以我可以像这样简单地做。
UIStoryboard * myStoryboard = [UIStoryboard storyboardWithName:@“ myStoryboard”捆绑包:无];UIViewController * vc =(UIViewController *)[myStoryboard InstantiateInitialViewController]; [self.navigationController pushViewController:vc动画:是];
当我们UIStoryboard
向内推时,此功能非常好,NavigationController
以便进一步导航时UIStoryboard's
ViewControllers
可以使用NavigationController
故事板被推入的位置。
第二种情况是必须UIStoryBoard
从我可以做的viewController模态呈现。
UIStoryboard * myStoryBoard = [UIStoryboard storyboardWithName:@“ myStoryBoard”捆绑包:无];UIViewController * vc = [myStoryBoard InstantiateInitialViewController];
[自我presentViewController:vc动画:是完成:^ {
}];
它是成功的,但现在作为提示UIStoryboard
是不是在任何NavigationController
时候我做一个组合舞蹈推动与第一ViewController
到第二ViewController
内部UIStoryboard
崩溃(应该)说
Could not find a navigation controller for segue. Push segues can only be used when the source controller is managed by an instance of UINavigationController.'
有人可以告诉我如何解决此问题,或者如何以编程方式嵌入或移除UIStoryboard
内部NavigationController
由于您是从模态推送且未包含在导航控制器中的控制器触发根序列的,因此它将无法正常工作。
您可能需要交换层次结构,以便主视图位于导航控制器中,该控制器是窗口根视图控制器,而另一个视图控制器是模态推送的。
实际上,您必须将UIViewController设置为UINavigationController的根控制器(或从navcontroller的视图控制器中推送)。要做到这一点
在视图控制器之前将新的导航控制器拖到情节提要中
右键单击导航控制器,然后将“ Root View Controller”属性连接到您现有的视图控制器。
将入口点箭头从您的视图控制器移动到根视图控制器
希望这会有所帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句