关闭模态视图后如何重新加载 tableView?
How can I reload the tableView after dismissal of modal view?
在 StoreViewController 中,单击按钮时,会打开一个名为 AddStoreVC 的 ModalViewController。
然后在 AddStoreVC 中,当我按下“保存”时,我想自行关闭(我可以这样做),当加载 StoreViewController 时,要刷新 tableView。
viewWillAppear、viewDidAppear 或 none 先前线程中的备选方案适用。
感谢您的支持。
您可以使用闭包、委托或通知(甚至 KVO 也是一种解决方案)。既然你有一对一的关系,我会选择闭包或模式。
关闭:
添加将模态呈现的ViewController (AddStoreVC)
var onWillDismiss: (() -> Void)?
当你在上面调用 dismiss(animated:completion:)
时,调用 onWillDismiss?()
在演示 ViewController 中,获取模态参考,然后执行:
modalVC.onWillDismiss = { [weak self] in
self?.myTableView.reloadData()
}
我没有传递任何参数(()
),但如果您还想检索一个参数,请添加它。假设您想要一个 Int:
var onWillDismiss: ((Int) -> Void)?
onWillDismiss?(theIntIWantToPass)
modalVC.onWillDismiss = { [weak self] theIntPassed in
print(theIntPassed)
self?.myTableView.reloadData()
}
代表:
你也可以使用委托模式:
创建委托:
protocol AddStoreVCCustomProtocol {
func modalVCWillDismiss(_ modalVC: AddStoreVC)
func modalVC(_ modalVC, willDimissWithParam param: Int)
}
使演示者符合它:
extension StoreViewController: AddStoreVCCustomProtocol {
func modalVCWillDismiss(_ modalVC: AddStoreVC) {
myTableView.reloadData()
}
func modalVC(_ modalVC, willDimissWithParam param: Int) {
print("theIntPassed with delegate: \(param)")
myTableView.reloadData()
}
}
在 Modal 中添加一个 属性 以获得委托:
weak var customDelegate: AddStoreVCCustomProtocol?
并在 dismiss(animated:completion:)
上调用它:customDelegate?.modalVCWillDismiss(self)
或 `customDelegate?.modalVC(self, willDimissWithParam: theIntIWantToPass)
在 StoreViewController 中,单击按钮时,会打开一个名为 AddStoreVC 的 ModalViewController。
然后在 AddStoreVC 中,当我按下“保存”时,我想自行关闭(我可以这样做),当加载 StoreViewController 时,要刷新 tableView。
viewWillAppear、viewDidAppear 或 none 先前线程中的备选方案适用。
感谢您的支持。
您可以使用闭包、委托或通知(甚至 KVO 也是一种解决方案)。既然你有一对一的关系,我会选择闭包或模式。
关闭:
添加将模态呈现的ViewController (AddStoreVC)
var onWillDismiss: (() -> Void)?
当你在上面调用 dismiss(animated:completion:)
时,调用 onWillDismiss?()
在演示 ViewController 中,获取模态参考,然后执行:
modalVC.onWillDismiss = { [weak self] in
self?.myTableView.reloadData()
}
我没有传递任何参数(()
),但如果您还想检索一个参数,请添加它。假设您想要一个 Int:
var onWillDismiss: ((Int) -> Void)?
onWillDismiss?(theIntIWantToPass)
modalVC.onWillDismiss = { [weak self] theIntPassed in
print(theIntPassed)
self?.myTableView.reloadData()
}
代表:
你也可以使用委托模式:
创建委托:
protocol AddStoreVCCustomProtocol {
func modalVCWillDismiss(_ modalVC: AddStoreVC)
func modalVC(_ modalVC, willDimissWithParam param: Int)
}
使演示者符合它:
extension StoreViewController: AddStoreVCCustomProtocol {
func modalVCWillDismiss(_ modalVC: AddStoreVC) {
myTableView.reloadData()
}
func modalVC(_ modalVC, willDimissWithParam param: Int) {
print("theIntPassed with delegate: \(param)")
myTableView.reloadData()
}
}
在 Modal 中添加一个 属性 以获得委托:
weak var customDelegate: AddStoreVCCustomProtocol?
并在 dismiss(animated:completion:)
上调用它:customDelegate?.modalVCWillDismiss(self)
或 `customDelegate?.modalVC(self, willDimissWithParam: theIntIWantToPass)