不幸的是,经过大量的搜索和阅读,我并非来自以下内容。我想使用静态表来显示某些数据。 (有更好的选择吗?)
在我看来,我首先在下面放了一个洋葱图,上面有一个容器视图。容器视图再次引用了表视图控制器。
我在单元格上做了一个出口,然后我想我可以轻松地调整文本。
现在,我想更改表中字段的文本,但是很遗憾,我没有成功。
当我启动该应用程序时,该表完全是空的,如屏幕截图所示。
我在做什么错了?
class TableViewController: UITableViewController {
var data: [String] = ["Muis", "Aap", "Koe", "Vis"]
override func viewDidLoad() {
super.viewDidLoad()
}
// MARK: - Table view data source
override func numberOfSections(in tableView: UITableView) -> Int {
// #warning Incomplete implementation, return the number of sections
return 1
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// #warning Incomplete implementation, return the number of rows
return data.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
let iets = data[indexPath.row]
cell.textLabel?.text = iets
return cell
}
}
答案 0 :(得分:1)
您需要改变这一思维方式。您不拥有单元格,UITableView
拥有。通过使用UITableViewDataSource
的实现,它将提供合适的单元格:
func numberOfSections(in: UITableView) -> Int
func tableView(UITableView, numberOfRowsInSection: Int) -> Int
func tableView(_ tableView: UITableView,
cellForRowAt indexPath: IndexPath) -> UITableViewCell
通常,文本(您的实际数据)将保存在该数据源可用的列表中。
示例:
var data: [String] = []
// Other functions
func numberOfSections(in: UITableView) -> Int {
return 1
}
func tableView(UITableView, numberOfRowsInSection: Int) -> Int {
return data.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "YOUR_IDENTIFIER")
cell.text = data[indexPath.row]
return cell
}
现在,如果要更改此单元格的文本,只需要做的就是更新数据列表并重新加载数据。
答案 1 :(得分:1)
如果要使用静态单元格
UITableViewCell
实例以及所有tableview数据源和委托方法出队。Static Cells
弹出窗口中选择 Content
IBOutlet
并将它们直接连接到单元格中的UI元素答案 2 :(得分:1)
经过大量测试和阅读,我所做的事情。我已经为可规类创建了一个序列。
if (segue.identifier == "myEmbeddedSegue") {
let childViewController = segue.destination as! hondDetialTableViewController
childViewController.hondId = hondData["hondId"]!
}
在此过程中,我仅发送hondId,以及我询问实体的其他所有信息。
答案 3 :(得分:0)
对不起,但这根本不是UITableView的工作方式。您在tableview的Xib / Storyboard中定义的UITableViewCell只是“模型”或模板,在您将它们出队之前,它们实际上并不存在。
您可以在此处阅读UITableView的工作方式:http://www.thomashanning.com/uitableview-tutorial-for-beginners/
如果要在表视图中显示任何内容,则必须返回numberOfSections> 0;同样,该部分还必须具有numberOfRows> 0,否则,将不会显示任何内容(如果正确设置,可能会显示页眉和页脚)。
无论如何,只有在将单元出队后才能访问它们。在大多数情况下,在XIB中创建UITableViewCell的插座是没有用的。
您可以探索其他选项,例如UIStackView,或者您所需要的仅仅是带有自定义标签的简单自定义UIView,并使用NSLayoutConstraints对其进行正确设置和布局。那里有很多资源,这只是我快速通过Google搜索供您使用的一种资源:https://www.youtube.com/watch?v=de0sthle44I
祝你好运。