segue放松后,TableView消失
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了segue放松后,TableView消失相关的知识,希望对你有一定的参考价值。
我花了一整天的时间试图解决这个问题,想要了解一下这里发生了什么:
我有一个自定义UITableViewController
嵌入在navigation controller
,它有一个按钮,触发一个普通的UIViewController
segue。
简单的UIViewController
有一个按钮,可以展开TableViewController
,还有一个“后退”按钮,由于navigation controller
而免费提供。
现在的问题是:当我从TableViewController
到UIViewController
时,一切正常。从UIViewController
,如果我按下“后退”按钮,它会回绕并且TableView
会自动重新加载。然而,当我按下与@IBAction
链接的按钮放松时,它会向TableViewController
展开,但没有任何东西显示出来,甚至没有空桌子。
我的调试视图显示,一旦我尝试使用我的按钮(不是“背面)放松,TableViewController
回到屏幕上,但它的框架超小,没有任何东西,所以navigation controller
的黑色背景显示,因此只是一个黑色表应该是的屏幕。
我可以告诉我如何在我放松时手动重新初始化tableView
或重置TableViewController
吗?我在tableView.reload()
尝试了viewDidAppear()
,没有发生任何事情,因为我怀疑问题是TableViewController
本身没有像以前那样的原始帧。
Link to screenshots with descriptions
TableViewController代码:
class StatsTableViewController: UITableViewController {
//variable stuff
@IBAction func unwindToRoot(_ sender: UIStoryboardSegue) {
}
override func viewDidLoad() {
super.viewDidLoad()
self.getData()
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
DispatchQueue.main.async {
self.tableView.reloadData()
}
self.getData()
}
// MARK: - Table view data source
override func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return solves.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! StatsTableViewCell
cell.timeLabel?.text = solves[indexPath.row].0
cell.scrambleLabel?.text = solves[indexPath.row].1
return cell
}
//other stuff
}
您在状态TableViewController中使用这两种方法
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "SelectionSegue" {
//Your code
}
}
@IBAction func unwindToThisView(sender: UIStoryboardSegue) {
// set Delegate datasource method
}
为unwindToThisView按钮设置插座以查看图像
设置后退按钮的操作
以上是关于segue放松后,TableView消失的主要内容,如果未能解决你的问题,请参考以下文章