如何从 TabBarController 内部的 NavBarController 显示 ViewController 故事板元素

How to Reveal ViewController Storyboard Elements from a NavBarController inside of a TabBarController

所以我有一个以编程方式(而不是通过故事板)创建的 CustomTabBarController。在 viewDidLoad() 内部,我创建了一个 ProfileNavController,视图控制器是 ProfileViewController(),也是以编程方式:

override func viewDidLoad() {
    super.viewDidLoad()

    // ProfileNavController <- ProfileController
    let profileController = ProfileViewController()
    let profileNavController = UINavigationController(rootViewController: profileController)
    let modifiedProfileNavController = UITabBarItem(title: "Profile", image: UIImage(named: ""), selectedImage: UIImage(named: ""))
    profileNavController.tabBarItem = modifiedProfileNavController

    // Tab-bar selector (ignore the "recentMessagesNavController", Whosebug)
    viewControllers = [recentMessagesNavController, createDummyNavControllerWithTitle("Groups", imageName: ""), createDummyNavControllerWithTitle("Submit", imageName: ""), createDummyNavControllerWithTitle("Search", imageName: ""), profileNavController]
}

然后我创建了一个 Profile.storyboard 并将视图控制器的 class 分配给身份检查器中的 ProfileViewController(在右侧列中)。在情节提要视图控制器中,我放置了一个标题为 "Hello World".

的标签

问题是,每当我 运行 程序并单击“配置文件”选项卡时,标签(以及情节提要中的其他所有内容)都不会显示。如何让它们显示?

ProfileViewController.swift供参考:

class ProfileViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()

        view.backgroundColor = UIColor.redColor()
        navigationItem.title = "Profile"
    }
}

您需要使用故事板引用

初始化ProfileViewController
let profileController = ProfileViewController()

改为

let profileController = UIStoryboard(name: "Profile", bundle: nil).instantiateInitialViewController()