我在UIViewController中有一个父UIView。此父UIView处于分段控制之下,这样当选择不同的索引时,此父视图会将相应添加的子视图(例如currentViewController()。view)带到前面。
var parentView: UIView!
var currentView: UIView!
override func viewDidLoad() {
currentView = currentViewController().view
parentUIView.addSubview(currentView)
parentUIView.bringSubview(currentView)
}
currentViewController中有一个UITableView。由于控制器是在xib下构建的,因此我在currentViewController中注册了单元。 (示例代码如下)
import UIKit
class currentViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet var stockInfo: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
stockInfo.delegate = self
stockInfo.dataSource = self
stockInfo.register(UITableViewCell.self, forCellReuseIdentifier: "something")
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 2
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = stockInfo.dequeueReusableCell(withIdentifier: "something", for: indexPath) as! UITableViewCell
cell.textLabel?.text = "testing DEFAULT"
return cell
}
代码非常简单直接。选择分段控件时,我检查索引并将此视图置于前面。上面的代码只是一个例子。我也有其他观点。
不幸的是,我的硬编码单元(为了便于调试)甚至不会显示超过一秒钟。它们在首次加载视图时出现,但在没有任何用户操作的情况下在一秒钟内消失。我想他们已被解除分配?或者我有什么理由不知道?有人可以帮忙吗?我被困在它上好几个小时。
答案 0 :(得分:0)
让我补充一下,我整天都在浪费时间去弄清楚。 reloadData()之后,我的表视图单元格消失了。解决方案是->取消隐藏prepareForReuse()中的单元格,prepareForReuse()用于单元格类内部。