2017-11-11 3 views
0

私は4つのタブを含むUITabbarControllerを持っています。 4番目のビューはnavigationControllerを持つviewControllerに接続しますナビゲーションコントローラを使用して接続された特別なタブのtableViewを更新する

ユーザーが4番目のタブを押すたびにテーブルビューを更新します。私UITabbarControllerとテーブルビュー

が含まれている4番目のタブの間にNavigationControllerがあるので、私はそれを行うことはできません

はそれを行うための方法はありますか?

私は私のUITabbaarControllerにdidSelect funcを持っており、そこに私はrefreshList funcを呼び出すが、私はそれが行わ

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


    FourthViewController().RefreshList() 

    } 
+0

これは 'viewWillAppear'で行います。 – dasdom

+0

@dasdomありがとう –

答えて

0

、私はこの

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

をした第四ビューコントローラで

間違っている知っていますviewDidLoad内

tableView.delegate = self 
    tableView.dataSource = self 

と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

あなたは 'viewWillAppear(_ :)'の実装で常に 'super.viewWillAppear(animated)'を呼び出すべきです。 – dasdom

+0

@dasdom oh ok私は追加しましたが、Xcodeは 'super.viewWillAppear(animated)'を生成しません。 –

+0

Xcodeは、必要な、または推奨されているすべてのcadeを生成しません。 – dasdom

関連する問題