2017-11-11 67 views
0

我有一个包含4个选项卡的UITabbarController。第四个连接到一个viewController,它有导航控制器在使用导航控制器连接的特殊选项卡中刷新tableView

我想刷新一个tableView,每当用户按下第四个选项卡。

我不能这样做,因为有和它包含表视图

有没有办法做到这一点的第四个选项卡我的UITabBarController之间的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() 
} 

第四视图控制器in viewDidLoad

tableView.delegate = self 
    tableView.dataSource = self 

and 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(动画)' –

+0

Xcode不会生成所有“需要”或推荐的cade。 – dasdom

相关问题