2012-04-03 11 views
0

私はこれを何時間も働いてきましたが、役に立たないため、私はviewWillAppearでテーブルのセクションをリロードする方法があります。しかし、最初のリロード後には、この方法はもう機能していないようです。私はcellForIndexメソッドにNSLogを置くので、これを知っています。それが重要な場合は、ナビゲーションバーを押してポップしています。なぜ、テーブル内の行をリロードする必要があるのですか?

- (void)viewWillAppear:(BOOL)animated { 
    NSLog(@"START TIME:%@", eSTime); 
    NSLog(@"END TIME:%@", eEtime); 
    NSIndexPath* rowToReload = [NSIndexPath indexPathForRow:0 inSection:1]; 
    reloadRows = [NSArray arrayWithObjects:rowToReload, nil]; 
    [self.tableView reloadRowsAtIndexPaths:reloadRows withRowAnimation:UITableViewRowAnimationNone]; 
} 
+0

cellForRowAtIndexPathメソッドの外観は?あなたがログインすると言うと、それは呼ばえされませんか? –

答えて

0

これは、何らかの理由で、表示コントローラのコンテナビューが、一度表示されることを通知するためです。

これを配置したビューコントローラーには、表示される時点と表示された時点、およびアニメーション形式で表示されたかどうかを示す責任があります。

何らかの理由でView Controllerが最初の外観の後でこのメソッドを正しく呼び出さなかった場合、View Controllerは-viewWillAppear:メソッド呼び出しで一度だけ受信し、そのため再ロードは一度だけ行われます。

質問:このビューコントローラをどのように表示していますか?それは、あなた自身やUINavigationControllerなどのコンテナにありますか?