我有一个带有TableView的ViewController(VCA).从这个ViewController可以调用另一个ViewController(VCB).在第二个VC中,可以将项添加到用于在VCA中填充TableView的plist中.问题是,当我保存新项目并关闭VCB时,我无法在VCA中重新加载TableView.
我找到了很多例子:
如何在Swift中解除模态显示的视图控制器后重新加载ViewController?
在swift中调用dismissViewController后如何调用重载表视图?
如何从swift中的另一个视图控制器重新加载tableview
看完之后我尝试了这段代码:
**IN VCB**
import UIKit
protocol AddItemDelegateProtocol {
func didAddItem()
}
class VCB: UIViewController {
var delegate : AddItemDelegateProtocol?
...
}
@IBAction func saveButton(_ sender: Any) {
....
self.delegate?.didAddItem()
dismiss(animated: true, completion: nil)
}
**In VCA**
class VCA: UIViewController, UITableViewDelegate, UITableViewDataSource, AddItemDelegateProtocol {
let addItemVC = VCB()
...
override func viewDidLoad() {
super.viewDidLoad()
addItemVC.delegate = self
...
}
func didAddItem() {
self.tableView.reloadData()
}
Run Code Online (Sandbox Code Playgroud)
但这不起作用.我不明白我哪里错了.你可以帮帮我吗?
编辑:我的解决方案 我这样解决了:
我已经创建了一个单例,我在其中声明:
class DataManager {
static let …
Run Code Online (Sandbox Code Playgroud)