2017-11-11 4 views
0

Ich habe eine UITabbarController, die 4 Registerkarten enthält. der vierte verbindet sich mit einem ViewController, der navigationController hatAktualisieren Sie eine TabelleView in einer speziellen Registerkarte, die mit Navigation Controller verbunden ist

Ich möchte eine TableView darin aktualisieren, wenn Benutzer die vierte Registerkarte drücken.

Ich kann es nicht tun, weil es eine Navigation zwischen meinem UITabBarController und der vierte Reiter ist die

Tabellenansicht enthält Gibt es eine Möglichkeit, es zu tun?

Ich habe didSelect func in meinem UITabbaarController und es nenne ich refreshList func, aber ich weiß, dass es falsch ist

override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) { 


    FourthViewController().RefreshList() 

    } 
+0

Ich würde dies in 'ViewWillAppear' tun. – dasdom

+0

@dasdom Danke, dass es funktioniert –

Antwort

0

Erledigt,

Im vierten View-Controller ich dies tat

override func viewWillAppear(_ animated: Bool) { 
    didBecomeActive() 
} 

in SichtDidLoad

tableView.delegate = self 
    tableView.dataSource = self 

und didBecomeActive

public func didBecomeActive() { 

    print("did become active") 

    let sentMessageBiz = ServiceFactory.CreateInstace(type: SentMessageBusiness.self) 


    messages = sentMessageBiz.FetchAll() 

    if (tableView != nil && (tableView.delegate as? FourthViewController) != nil) 
    { 
     tableView.reloadData() 
    } 

} 
+0

Sie sollten 'super.viewWillAppear (animiert)' immer in Ihrer Implementierung von 'viewWillAppear (_ :)' aufrufen. – dasdom

+0

@dasdom oh ok Ich habe hinzugefügt, aber Xcode generiert nicht 'super.viewWillAppear (animiert)' –

+0

Xcode generiert nicht alle Cade, die "benötigt" oder empfohlen wird. – dasdom

Verwandte Themen