【问题标题】:UISplitViewController and UINavigationController doesn't work properly with multiple storyboardsUISplitViewController 和 UINavigationController 不能与多个故事板一起正常工作
【发布时间】:2015-08-21 18:06:54
【问题描述】:

我正在尝试(为了实验)使用多个故事板。 第一个故事板(从启动时开始)只包含一个视图控制器,它执行一些代码并从网站下载 json 数据。

当完成下载任务时,(第一个故事板的)视图控制器在实例化后将第二个故事板的入口点设置为根视图控制器。

UIStoryboard *mainSB = [UIStoryboard storyboardWithName:@"SecondStoryboard" bundle:[NSBundle mainBundle]];
    UITabBarController *rootTabBarController = (UITabBarController *)[mainSB instantiateInitialViewController];

    dispatch_sync(dispatch_get_main_queue(), ^{

        ...

        self.view.window.rootViewController = rootTabBarController;

第二个故事板包含一个标签栏控制器,里面有一个拆分视图控制器:

一切正常,但 splitview 控制器内部的导航栏控制器有一个奇怪的行为。它的后退按钮在按下时可以工作,但不能正确显示,因为只有“后退”文本而没有左箭头。

]3

仅在几分钟后,在主视图和详细视图之间进行了一些转换后,后退按钮才能正确显示左箭头。

(如果我只使用启动时的第二个故事板,则一切正常)

我知道在这种情况下我只能使用一个情节提要,但我想知道以这种方式处理多个情节提要是否不正确,或者这是一个错误。

【问题讨论】:

  • 您知道如果您将所有控制器都放在一个情节提要中,它会起作用吗?顺便说一句,Apple 说拆分视图控制器应该只是窗口的根视图控制器,而不是嵌入在标签栏控制器中。
  • @rdelmar 是的,如果我将所有控制器都放在同一个情节提要中并执行特定的 segue,那么一切正常。 StoryBoard 但是,使用 TabBar 控制器和其中的 UISplitView 我没有任何问题。
  • 我试图从第二个故事板中删除 UISplitViewController,只留下 UINavigationController。一切正常,所以问题出在 UISplitViewController。

标签: ios uinavigationcontroller uistoryboard uisplitviewcontroller


【解决方案1】:

新的 Xcode 7 Beta 和 iOS 9 都可以完美运行。

导航控制器的人字形显示的文件配置相同。 不知道为什么,Apple 在这次 WWDC 中发布了 storyboard 参考,但我认为那是 UISplitViewController 的一个 bug。

【讨论】:

    猜你喜欢
    • 2023-03-05
    • 2016-11-04
    • 2019-12-10
    • 2011-06-30
    • 2015-05-06
    • 1970-01-01
    • 1970-01-01
    • 2013-03-13
    • 2018-11-10
    相关资源
    最近更新 更多