当我第一次为故事板中正在处理的应用程序创建基础布局时,我分两步完成:
这是最终的布局:
问题1:为什么这些步骤会创建如此奇怪的布局?
在这个奇怪的布局中,似乎暗示导航控制器作为其父级附加到标签栏控制器,我可以获得导航项目在应用程序中显示的唯一方法(在视图控制器控制的视图中)右)是将它们放在标签栏控制器场景的导航栏中。
然而,这会产生各种问题,包括无法在我的View Controller文件中为自定义视图创建IBOutlet,我将其拖动到Tab Bar Controller场景中的标题视图槽中。同时,将任何内容拖动到View Controller场景中的导航栏只会使其在运行时不会显示在应用程序中。
问题2:如何修复此布局,以便我可以控制 - 从导航项拖动到我的View Controller文件中?或者一切都是正确的,我只是想强迫一些我不应该做的事情? (我的目的是能够在我的View Controller代码中设置自定义标题视图的文本。)
答案 0 :(得分:1)
很明显,如果您想将MyViewController
嵌入NavigationController
,那么您需要更改第二步,并需要将NavigationController
嵌入Tab Bar Controller
。
MyViewController
并使用Editor->Embed In->Navigation Controller
。NavigationController
嵌入MyViewController
并使用Editor->Embed In->Tab Bar Controller
。应该是这样的。
注意:仅当您希望MyViewController
对navigationController
其他方式执行推送操作时,才需要将TabBarItem
嵌入MyViewController
明智地只需将MyViewController
嵌入TabBarController
,无需将其嵌入NavigationController
。