2

背景:应用程序的 UI 是一个标签栏控制器,每个标签栏都有自己的导航控制器。几个视图控制器是常见的,用户可以访问它们而不管他们正在使用哪个选项卡。最初,我只是将故事板上的所有转场连接到故事板上的一个视图控制器,以获取这些常见视图。但我意识到用户可以进入公共视图,选择不同的选项卡,然后返回到不同导航控制器上的公共视图……我不知道那是什么。是视图控制器的这两个不同的实例吗?如果不是,它会在弹出时“返回”哪个导航控制器?

Xcode 崩溃变得越来越频繁,直到它在打开故事板时立即崩溃。同时,我有几十个“模棱两可的视图”类型的警告,我一直在推迟解决。所以我调整了约束,直到所有的警告都被消除了,加上我消除了导航控制器之间的任何segues,我只有多个公共视图的副本。从那以后,Xcode 一直很稳定。但是现在我的故事板中的一组视图控制器中的每一个都有三个副本,并且更改/维护它们被证明很麻烦。

4

2 回答 2

3

Storyboard 非常强大,但它也很方便,并且可以说是为简单的界面和更多新手程序员设计的。因此,在创建更复杂(或者更恰当地说,不太标准)的接口时,您希望将更多内容移至代码中。这可以是故事板中命名视图控制器(从代码实例化)或独立 XIB 文件的组合。

于 2013-11-15T18:01:44.653 回答
1

您可以做的只是复制您喜欢在情节提要中拥有多个转场的视图控制器。在 viewcontroller 的 viewDidLoad 中,您可以从哪个选项卡中找到您被调用的选项,并可能调整它的功能:

UITabBarController *tabBarController = (UITabBarController *)[[UIApplication sharedApplication] delegate].window.rootViewController;
ALog( @"Selected tab: %d", tabBarController.selectedIndex );

这只是询问应用程序的 UITabBarController ,它是选定的选项卡。

因此,这对一个视图控制器来说并不多,但对于实际目的来说它可能足够接近。

于 2015-02-04T12:14:48.663 回答