我有一个uitabbarcontroller作为我的应用程序委托的一部分,当用户触摸特定选项卡(收藏夹)并强迫其中的表以重新加载数据时,我想陷入困境。

在这种情况下,最好的做法是什么?

我已将Uitabardelegate协议添加到我的应用程序委托中,并实现了DidSelectViewController方法。到目前为止,一切都很好。在方法中,我会得到一个ViewController,因此我可以检查其标题等。确定选择哪个选项卡。

然后,如何将ReloDdata消息发送到ViewController中的UitableView?我尝试在FavouritesViewController类中创建一种方法,并将其调用,但它不起作用。

示例代码:

#pragma mark UITabBarController delegate methods

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
   // If the favourites tab is pressed then reload the data
   if (viewController.title = @"Favourites")
   {
      if ([viewController respondsToSelector:@selector(reloadFavourites:)]) 
      {
         [viewController reloadFavourites];
      }
   }
} 
有帮助吗?

解决方案

听起来您需要添加一个 [UITableView reloadData] 到tableViewController的 viewWillDisplay 方法。这将导致每次显示表。

如果您想强制重新加载,将显示TableView,则可以从OP中创建的方法来调用重新加载。

其他提示

以下代码应该刷新您的桌子 每一次 视图出现。

-(void)viewWillAppear:(BOOL)animated
{
    [[self tableView] reloadData];
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top