Swift 在对另一个tableview调用disclose()后刷新tableview数据
设置:表格视图控制器有一个按钮(Add),可以弹出另一个带有表单的视图控制器。我使用Swift 在对另一个tableview调用disclose()后刷新tableview数据,swift,xcode,Swift,Xcode,设置:表格视图控制器有一个按钮(Add),可以弹出另一个带有表单的视图控制器。我使用Realm来存储数据,因此无需将数据传回。但是,当我退出视图控制器并返回到表视图控制器时,我无法使tableView.reloadData()工作 我已经尝试了viewwillappease()和viewdideappease(),但它们都不在调用堆栈中 你知道我需要把这个放在哪里吗?你需要一个代表 let second = /// second.delegate = self 当你在第二次vc解雇时 dele
Realm
来存储数据,因此无需将数据传回。但是,当我退出视图控制器并返回到表视图控制器时,我无法使tableView.reloadData()
工作
我已经尝试了viewwillappease()
和viewdideappease()
,但它们都不在调用堆栈中
你知道我需要把这个放在哪里吗?你需要一个代表
let second = ///
second.delegate = self
当你在第二次vc解雇时
delegate?.refresh()
可能您的第二个控制器正在以模式显示。根据: 如果视图控制器由popover内的视图控制器呈现,则在呈现的控制器被解除后,不会在呈现的视图控制器上调用此方法 您可以通过代理解决您的问题:
protocol ControllerBDelegate {
func willDismiss()
}
class ControllerA {
func open() {
let vc = ControllerB()
vc.delegate = self
self.present(vc, animated: true)
}
}
extension ControllerA : ControllerBDelegate {
func willDismiss() {
self.tableView.reloadData()
}
}
class ControllerB {
weak var delegate: ControllerBDelegate?
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
delegate?.willDismiss()
}
}