UIStoryBoard 加载 rootController

Posted

技术标签:

【中文标题】UIStoryBoard 加载 rootController【英文标题】:UIStoryBoard load rootController 【发布时间】:2013-01-26 05:21:54 【问题描述】:

我的应用程序中有 UIStoryBoard 方法,它具有以下模式的屏幕:

UINavigationController -> MyMainController -> UITabBarController-> UINavigationController -> MyHomeController

从 MyHomeController 有一个 UIButton 和它的动作是

UINavigationController -> MyDetailsController

现在,我想从 MyDetailsController 回到 MyMainController。我面临的问题是我没有以黑色突出显示 UINavigationController 以从 MyDetailsController 访问。

另外,UIStoryBoard 不必根据 Identifier 获取 UIViewController。

它有但实例化了一个 UIViewController,这不是一个更好的解决方案。

- (id)instantiateViewControllerWithIdentifier:(NSString *)identifier

【问题讨论】:

为什么不让标签栏控制器成为根控制器? @rdelmar 我不希望 UITabBar 在 MyMainController 的底部。 然后您可以在该控制器在屏幕上时隐藏标签栏。使用底部的标签栏,结构会更加简单明了。但整体设计实际上取决于您在所有这些不同的控制器中所做的事情。 @rdelmar 我不想显示带有 UITabBar 项的 MyMainController。使用您提到的方法,我必须从 UITabBarItems 添加和删除 if,尽管我将隐藏 UITabBar。所以管理它变得有点过度了。 您可能会使用展开转场来回到您的 MyMainController。 【参考方案1】:

Uitabbar 控制器优先。然后添加 uinavigation 控制器,然后添加您选择的视图控制器作为导航控制器的根控制器

这篇文章有很好的图片来说明这个问题

General way to pass data to UIViewControllers when using a UITabController

【讨论】:

以上是关于UIStoryBoard 加载 rootController的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在不同的 UIStoryBoard 的 UIViewController 中使用 UIStoryBoard?

UIStoryboard UIView 控制器

从 UIView 以编程方式加载视图控制器

UIStoryboard() 中的 nil 和 NSBundle 有啥区别?

ViewController 加载两次

AppDelegate动态加载StoryBoard