我正在使用在storyboard中创建的unwindSegue来关闭一个模态显示的tableViewController。
当我在didSelectRowAt中调用unwindSegue时:
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
chosenItem = items[indexPath.row]
self.performSegue(withIdentifier: "Unwind Segue", sender: nil)
}
此tableViewController上的prepareForSegue和将被取消的viewController上的unwind函数立即调用。这是对将被解除的tableViewController上的segue的准备:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let vc2 = segue.destination as? ItemsTableViewController {
vc2.item = chosenItem
}
}
这里是viewController上的展开函数,它将被解除为:
@IBAction func unwindFromAddCategory(_ segue: UIStoryboardSegue) {
tableView.reloadData()
}
问题是被忽略的tableViewController偶尔需要几秒钟才能解散。 tableViewController行的模型只是一个字符串数组。没有任何异步发生的事情,我知道并且正在展开的viewController没有会导致此延迟的方法,也没有viewWillAppear或viewDidAppear覆盖。无法理解为什么我的UI偶尔会出现这种延迟。