Model-View-Controllerデザイン パターンについて読む必要があります。これは、iOS 開発で非常に役立ちます。
一般に、コントローラは別のコントローラのビューにリフレッシュが必要であることを直接伝えるべきではありません。ViewControllerA
ビューを更新するのは の責任です。ただし、コントローラーは互いに通信して、モデルの状態の変化について通知することができます (または、モデル自体を介して行うこともできます)。
この場合、おそらく最も簡単な解決策はViewControllerB
、メッセージを送信することです。そのため、必要なときに呼び出すことができるようにViewControllerA
、インターフェイスを定義し、作成時にへViewControllerA
の参照を渡す必要があります。例えば:ViewControllerA
ViewControllerB
でViewControllerA
...
- (void)stateChanged
{
// Code to handle the change and update the view if it's visible.
// Alternatively, just set a BOOL flag here and then check it in
// viewWillAppear so that the view-update only happen later on when
// the view is actually about to appear.
}
あなたのpushBack
方法でViewControllerB
...
- (void)pushBack
{
[viewControllerA stateChanged];
[self.navigationController popViewControllerAnimated:YES];
}
必要な追加の値を渡すことができますstateChanged
- これは単なる例です。よりクリーンな方法は、デリゲートを使用するか、コントローラーからモデル自体を観察することですが、MVC を学習し、M、V、および C を最適に分離および分離する方法を学習しているときに理解しやすいと思います。