在我为它分配自定义 class 后,UITableViewController 上没有任何显示

Nothing appears on UITableViewController after I assign it a custom class

我有一个 swift 应用程序,目前只有一个视图 ('main view')。我想添加一个设置页面,所以我添加了一个 UITableViewController 并在主视图上制作了一个按钮,将此设置视图作为弹出窗口打开。到目前为止,一切都很好。然后我想为第二个视图添加自定义代码,所以我制作了一个名为 settingsViewController 的 cocoa touch class,它继承自 UITableViewController,并将其分配为 'custom class' 用于设置视图。现在设置视图上什么也没有显示,我不知道为什么?!

如果我删除设置视图的自定义 class 规范,一切都会重新开始显示。

这里有什么问题?

我正在使用 Swift 2.2 和 Xcode 7.3.1

当 'custom class' 设置视图字段为空时:

当设置视图的 'custom class' 字段中提到 settingsViewController 时:

编辑:

这是我的 settingsViewController class 的全部内容:

import UIKit

class settingsViewController: UITableViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }

    override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
        return 0
    }

    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 0
    }
}

您需要通过委托方法传递每个部分的总节数和行数。

override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    return 0   // This shouldn't be zero
}

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return 0   // This shouldn't be zero
}

这些是数据源方法。您应该将它们分配给特定的数据源。

示例:

// This is the dataSource for now as an example
var dataList = [1,2,3,4,5,6,7]

override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    return 1    // We have a 1D array here only
}

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return dataList.count   // Total no. of items in the array.
}

并且,这就是您如何设置节数和每个节中的行数的示例。通过将它们设置为零,它们很可能会成为空白部分和单元格。

Try putting them something else than ZERO and see for yourself.

亲切的问候,
苏曼·阿迪卡里