点击tabBar时刷新tableView

Posted

技术标签:

【中文标题】点击tabBar时刷新tableView【英文标题】:Refresh the tableView when clicking on the tabBar 【发布时间】:2011-01-09 23:07:50 【问题描述】:

当我单击 tabBar 中的相关按钮时,我只想刷新我的 tableView(在 iPhone 上)...

所以,我认为必须这样做:

[self.tableView reloadData];

对吗?并在

中完成
(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController

但我不知道如何从 tabBar 控制器将消息 reloadData 发送到 tableView... 你能帮帮我吗?

【问题讨论】:

【参考方案1】:

在您的UITableViewController 类中,实现viewWillAppear 方法并从那里调用reloadData

【讨论】:

工作正常(再次感谢;))但是如果我想在点击相关的 tabBar 按钮时刷新 tableView,即使我已经在 tableView 中? (也就是说,使用tabBar按钮作为刷新按钮) 在 v3.0 及更高版本的 SDK 中,您可以通过实现 UITabBarControllerDelegate 类(某处)并响应 - (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController 方法来完成此操作。在 v3.0 及以下版本中,这是不可能的,因为除非所选视图控制器实际发生更改,否则不会调用该方法。 哦,并相应地设置UITabBarControllerdelegate 属性。 是的,这是我的第一个想法(在问题中),但我(很可能很简单)的问题是如何访问我的实际 viewController 的方法。 (因为参数 viewController 不响应方法调用)谢谢 :) tabBarController:didSelectViewController: 中手动调用viewWillAppear 方法,而后者又会调用其表的reloadData 方法。或者在你的viewController 中设置一个虚拟方法,它只调用reloadData 并且什么都不做。或者在委托的方法中将viewController 转换为UITableViewController(如果没有这个,它仍然会响应选择器,例如[[viewController tableView] reloadData])。

以上是关于点击tabBar时刷新tableView的主要内容,如果未能解决你的问题,请参考以下文章

swift tabbar页面切换时刷新的方法

导航到 Swift tabBar 时不会刷新视图

如何在单击 tabBar 项目 Swift 上刷新 tableView?

Swift - 以编程方式刷新约束

12.小程序 之切换到tabBar页面不刷新问题

TabBar 按钮出现问题,TabBar 按钮变得不可点击