简短概要(XCode 7.2,Swift2,iOS 9.2作为目标):
1)在first.storyboard中,我有一个viewController。
2)在second.storyboard中,我有一个tabbarController,带有tableviewControllers的多个navigationControllers(参见附图)。另外值得注意的是,当second.storyboard是启动时使用的那个,一切正常。
3)应用程序的主UI位于first.storyboard中,我想在第二个库中显示tabbarcontroller
4)无论我呈现它的方式(storyboard reference / segue,presentViewController,showViewController),tabbarcontroller和所有初始视图都有效,但如果我点击tableviewcell来切换到另一个视图,整个tabbarcontroller并且内容消失,让我回到first.storyboard中的viewcontroller。
我可以作弊,并手动设置rootViewController,似乎工作正常
let sb = UIStoryboard(name: "second", bundle: nil)
let navController = sb.instantiateViewControllerWithIdentifier("secondIdentifier") as! UITabBarController
UIApplication.sharedApplication().keyWindow?.rootViewController = navController
我怀疑我可以为此添加一个动画,以避免过渡不那么明显。但这似乎是我不应该做的事情,并且在未来进行故障排除时会有些痛苦。我错过了一些基本的工作吗?
编辑:视频无效https://youtu.be/MIhR4TVd7CY
注意:我最后制作的应用程序最初是针对iOS4的,我以编程方式完成了所有视图。似乎对IB和segues等的所有更新都会让生活变得更易于管理(并且大部分情况都是如此),但这仍然是我第一次涉足它,所以我可能会错过一些重要的信息点。描述问题。
答案 0 :(得分:0)
我找到了一种处理这个问题的优秀方法:SELECT
实施这项工作需要额外的工作,但它会产生“更正确”的结果。
我的解决方案是制作一个自定义的UIStoryboardSegue,它将执行动画以及设置rootViewController。
MAX
我无法在界面构建器中找到方法,或者在更改rootViewController以使其工作的代码中找不到方法。我最终会遇到各种随机导航问题,例如重叠导航条,segue动画在我更改标签之前无法正常工作,完全没有控制台信息的锁定等等。
我之前已经提出了一个tabBarcontroller模式(不改变rootviewController),但一切都是在代码中完成的(从ios7和objective-c开始工作)。当在故事板中制作视图层次结构时,不知道幕后发生了什么,但想知道这可能是一个错误。
感谢stackoverflow上的其他多个答案,以获取我的!