如何从swift中的另一个视图控制器重新加载tableview

Sun*_*eni 35 tableview ios swift

当我解雇一个模态视图控制器我希望tableview更新时,我在iPad上使用表单表示样式,所以这些viewWillAppearviewDidAppear方法将不起作用

Seb*_*ian 72

你可以这样做:

在你的tableView控制器中:

override func viewDidLoad() {
    super.viewDidLoad()
    NotificationCenter.default.addObserver(self, selector: #selector(loadList), name: NSNotification.Name(rawValue: "load"), object: nil)
}

func loadList(notification: NSNotification){
    //load data here
    self.tableView.reloadData()
}
Run Code Online (Sandbox Code Playgroud)

然后在另一个ViewController中:

NotificationCenter.default.post(name: NSNotification.Name(rawValue: "load"), object: nil)
Run Code Online (Sandbox Code Playgroud)


mri*_*011 48

Swift 3版本代码:在你的第一个视图控制器中:

override func viewDidLoad() {
        super.viewDidLoad()
        NotificationCenter.default.addObserver(self, selector: #selector(loadList), name: NSNotification.Name(rawValue: "load"), object: nil)
    }

func loadList(){
        //load data here
        self.tableView.reloadData()
    }
Run Code Online (Sandbox Code Playgroud)

在第二个视图控制器中:

NotificationCenter.default.post(name: NSNotification.Name(rawValue: "load"), object: nil)
Run Code Online (Sandbox Code Playgroud)

  • 在第二个视图控制器中的任何位置,您认为更新tableView的可能性是:methods,viewDidLoad或代码的任何部分..希望它有用 (2认同)