导航栏没有显示嵌入式TableViewController - Swift

时间:2016-09-20 01:19:01

标签: swift uitableview uinavigationcontroller ios10 xcode8

我的TableViewController中嵌入了一个NavigationController。当我运行应用程序时,一切正常,但导航栏不会显示。

这是我的代码的外观:

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    let box = boxes[indexPath.row]
    print(box.name)



    if let storyboard = self.storyboard {
        let viewController = storyboard.instantiateViewController(withIdentifier: "BoxDescriptionTVC") as! BoxDescriptionTableViewController
        self.present(viewController, animated: false, completion: nil)
        viewController.boxDetailsLabel.text = box.boxDescription
        if let boxImageURL = box.boxImageURL {
            viewController.boxImageView.loadImageUsingCacheWithUrlString(urlString: boxImageURL)
        }
    }
}

如何创建NavigationController的实例来呈现它而不是TableViewController?

1 个答案:

答案 0 :(得分:1)

首先,您可以在故事板中为NavigationController设置storyboardID。然后,您可以编写如下代码。 (我假设您的viewcontrollers位于" Main" storyboard中,您可以在Identity检查器中设置storyboardID)

let storyboard = UIStoryboard(name: "Main", bundle: nil)
let boxDescriptionNavVC = storyboard.instantiateViewControllerWithIdentifier(BoxDescriptionNavID) as! UINavigationController
let destinationTableViewVC = boxDescriptionNavVC.topViewController as! YourTableViewVC
destinationTableViewVC.textVariable = box.boxDescription
presentViewController(boxDescriptionNavVC, animated: true, completion: nil)