繁体   English   中英

当导航控制器将其作为根视图时,tableview在ViewController中似乎为nil [SWIFT 3]

[英]tableview appear to be nil in ViewController when it's root by a navigation controller [SWIFT 3]

我目前的专案有问题。 一开始,我的主要重点是在TableViewController中创建一个叠加按钮,但我发现使用ViewController并在其上设置tableView更简单:

class MemoList : UIViewController, UITableViewDataSource, UITableViewDelegate{

@IBOutlet weak var myTableView: UITableView!
    override func viewDidLoad() {
        super.viewDidLoad()
        myTableView.delegate = self
        #datasource is linked manually in the StoryBoard
        ...
    }
} 

当将此View Controller设置为初始控制器时,一切正常,但就我而言,当projet由导航控制器作为根目录时,在“记事簿”的上下文中(推入时)表视图似乎为零。

您对这个问题有任何想法吗? 我该如何解决呢?

谢谢,

对我来说,问题是我曾经

present(myViewController, animated: true, completion: nil)

在我尝试使用segue和

performSegue(withIdentifier: "myIdentifier", sender: self)

它工作正常,tableView不再为零。

为什么会有这个问题:当您使用present() ,您会从代码初始化View Controller ,并且它不会在Storyboard上监视。 当您使用segues ,它将使用Storyboard并且当然会看到您在Interface Builder所做的一切

您还可以:

UIStoryboard(name: "StoryboardName", bundle: nil).instantiateViewController(withIdentifier: "ViewControllerId")

这将从Storyboard创建视图控制器,以便立即初始化tableView

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM