在UIView中清空UITableView,在Swift 3中使用自定义委托类UITableViewDelegate和UITableViewDataSource

时间:2017-06-26 15:16:50

标签: ios swift uitableview

我在互联网上搜索了很多东西,但却没有成功。问题是自定义UITableViewCell未显示UITableView

中的数据

我将自定义UIViewController添加到视图中:

UITableView that is added from designer

此视图由名为UIViewController的自定义tvResults控制:

class NavSearchViewController: UIViewController {
    @IBOutlet weak var tvResults: UITableView!

    override func viewDidLoad() {
        super.viewDidLoad()

        let ntvc = NavSearchTableViewController();
        tvResults.register(UINib(nibName: "NavSearchResultTableViewCell", bundle: Bundle(for: NavSearchViewController.self)), forCellReuseIdentifier: "NavSearchResultTableViewCell")

        tvResults.dataSource = ntvc
        tvResults.delegate = ntvc

        tvResults.reloadData()
    }
}

班级NavSearchTableViewController执行简单的工作:

class NavSearchTableViewController: NSObject, UITableViewDelegate, UITableViewDataSource {
    func numberOfSections(in tableView: UITableView) -> Int {
        return 1
    }

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 5
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "NavSearchResultTableViewCell", for: indexPath) as!NavSearchResultTableViewCell

        return cell
    }
}

当我调试时,我可以看到它达到cellForRowAt indexPath的5倍而没有任何崩溃。

自定义单元格看起来像这样:

enter image description here

所有这些都将结束于一个没有任何运行时错误或崩溃的空tableView。我做错了什么?

0 个答案:

没有答案