【发布时间】:2017-03-27 01:47:33
【问题描述】:
我完全被这个问题难住了。
我有一个应用程序,它的视图控制器主要是在情节提要上制作的。然而, 有一些完全用代码(以编程方式)制作。
我的应用程序的入口点是一个 TabBarController,它提供给许多不同的导航控制器,每个导航控制器都有自己的 UIViewController。
使用选项卡栏项导航到任何适当的视图控制器(在情节提要中表示)都没有问题。 但是,当我选择一个在情节提要上没有直接转场的选项卡栏项时 - 因为它的 UIViewController 完全通过代码构建 - 我无法转场到正确的类。
我已经向具有 ViewDidLoad() 函数的 NavigationController 添加了一个 *.swift 类。当我选择适当的选项卡栏项时,永远不会调用此函数。 奇怪的是,有一个 Navigation Controller 连接到 UIViewController(显示在情节提要中)并附加了一个 *.swift 文件。它的ViewDidLoad()在选择正确的选项卡条项时会调用。 我尝试附加多个 *.swift 文件(所有文件都继承自 UINavigationController),但我无法获得一个来调用适当的 ViewDidLoad() 函数。
编辑:正如您在图像中看到的,左下角的导航控制器没有从它延伸的 segue。但是,有一个附加到它的类,在它的 ViewDidLoad() 函数中是发生segue的地方
class WeaponsNavController: UINavigationController
{
override func viewDidLoad()
{
self.navigationController?.pushViewController(WeaponsTableVC(), animated: true)
}
}
如您所见,我正在尝试连接到 WeaponsTableVC(),它是一个完全通过代码创建的视图控制器。但是,尽管直接连接到情节提要中的导航控制器,但该类似乎根本没有被调用。
【问题讨论】:
-
您能否展示将程序化视图控制器添加到标签栏控制器的代码?另外,您在第二段开头指的是哪个导航控制器?一个以编程方式制作,还是在情节提要中没有根视图控制器?
标签: ios uinavigationcontroller uitabbarcontroller