背景:应用程序的UI是一个标签栏控制器,每个标签栏都有自己的导航控制器。几个视图控制器很常见,用户可以访问它们,无论他们使用哪个选项卡。最初,我只是将故事板上的各个段落转到故事板上的一个视图控制器,以获取这些常见视图。但我意识到用户可以进入公共视图,选择不同的选项卡,然后返回到不同导航控制器上的公共视图......我不知道那是什么。是视图控制器的这两个不同的实例吗?如果没有,弹出时哪个导航控制器会“重新启动”?
Xcode崩溃变得越来越频繁,直到它在打开故事板后立即开始崩溃。与此同时,我有几十个“模棱两可”的警告,我一直在推迟解决。所以我调整了约束,直到所有的警告被消除,加上我消除了导航控制器之间的任何分段,我只有多个共同视图的副本。从那以后,Xcode一直稳定成为摇滚乐。但是现在我的故事板中的每组视图控制器各有三个副本,并且更改/维护它们证明是繁琐的。
答案 0 :(得分:3)
故事板非常强大,但它也是一种便利,可以说是专为简单的界面和更多的新手程序员而设计的。因此,在创建更复杂(或更适合,更不标准)的接口时,您希望更多地转移到代码中。这可以是故事板中的命名视图控制器(从代码实例化)或独立的XIB文件的组合。
答案 1 :(得分:1)
你可以做的只是复制你想在故事板中有多个segue的viewcontroller。在viewcontroller的viewDidLoad中,您可以找到您调用的选项卡,并可能调整它的功能:
UITabBarController *tabBarController = (UITabBarController *)[[UIApplication sharedApplication] delegate].window.rootViewController;
ALog( @"Selected tab: %d", tabBarController.selectedIndex );
这只是询问应用程序的UITabBarController,它是选定的选项卡。
所以,这不是一个视图控制器的细分,但它可能足够接近实际用途。