質問

私は私のアプリデリゲートの一部としてUITabBarControllerを持っていると私は、ユーザーが特定のタブ(お気に入り)に触れるトラップしたいし、データを再ロードするために、その中にテーブルを強制ます。

この例ではベストプラクティスは何でしょうか?

私は私のアプリデリゲートにUITabBarDelegateプロトコルを追加し、didSelectViewControllerメソッドを実装しています。ここまでは順調ですね。この方法の中で私はViewControllerをを取得するので、私は選択されたタブを決定するためにそのタイトルなどを確認することができます。

どのように私は、その後のViewController内のUITableViewにreloadDataメッセージを送ることができますか?私は私の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];
      }
   }
} 
役に立ちましたか?

解決

あなたはtableViewControllerの[UITableView reloadData]メソッドにviewWillDisplayを追加する必要があるように、

これが鳴ります。これは、テーブルには、それが表示されるたびにリロードする原因となります。

あなたがテーブルビューがすでに、あなたが動作するはずOPで作成したメソッドからのリロードを呼び出して、表示されますリロードを強制したい場合。

他のヒント

次のコードは、あなたのテーブルを更新する必要があります。の一つ一つの時間のビューが表示されます。

-(void)viewWillAppear:(BOOL)animated
{
    [[self tableView] reloadData];
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top