2017-05-22 6 views
-1

私にはTab Bar Controllerがあります。 2つのタブがあります。最初は、何らかの計算に基づいてTable View Controllerにいくつかのデータを表示するものです。第2のタブは、第1のタブのデータの計算に使用される変数の値を変更するためのタブである。更新された値のリロードタブ

ここで、2番目のタブの値を変更して最初のタブに戻すと、最初のタブの計算された値は更新されません。しかし、私は再びアプリケーションを実行します。

私は多くの解決策を経てきましたが、私のために働いていません。私は使用しました

[self.tableView reloadData]; 

私のために働いていません。 助けてください。

+1

私たちが理解できるようにいくつかのコードを共有します。 – KKRocks

+0

この2つのコントローラ間でデータを渡す必要があります。 reloadDataは、変更されたデータをリロードする関数です。 – KKRocks

+0

通知を使用して、第2ビューコントローラにいくつかの変更を通知することができます。 – commando24

答えて

1

ViewWillAppearを使用すると、タブをクリックするたびにviewControllerが更新されます。 tabViewControllerのViewControllerのように

はonce.So のviewDidLoad方法が(あなたはときにアプリの再起動を言うように)初回のみ と呼ばれてロードされます。

viewWillAppearは、タブを切り替えるたびに呼び出されます。

- (void)viewWillAppear:(BOOL)animated { 
    [super viewWillAppear:animated]; 
    //refresh the view controller 
} 
+0

右!!!!今私はviewWillAppearに私のコードを移動し、それは完全に正常に動作します。ありがとう。 – sazid008

0

2のViewControllerの間でデータを渡し、それが動作します

- (void)viewWillAppear:(BOOL)animated { 
    [super viewWillAppear:animated]; 

} 

の内側にあなたのコードを入れてください。

0

あなたはおそらく、あなたの[self.tableView reloadData]; をviewDidLoadで呼び出すだけです。ビューが既にロードされているため、タブを切り替えると呼び出されません。そうでない場合は@Ved

- (void)viewWillAppear:(BOOL)animated { 
    [super viewWillAppear:animated]; 
    [self.tableView reloadData]; 
} 

が提案したようにあなたは、あなたのセッターに挿入することができ、viewWillAppear:であなたのtableViewを再ロードすることができます。したがって、計算された値が変更されるたびに、tableViewが再読み込みされます。

関連する問題