2010-12-14 13 views
2

私のアプリケーションには、メインアクセスポイントとしてタブビューコントローラがあります。 しかし、初めて実行するときには基本的なデータを確認する必要があります。欠落している場合は、まずこの情報を取得するためのビューを表示する必要があります。タブビューの表は、この情報を使用してデータを表示します。サブビューが削除されたことを親ビューに通知する方法 - iphone

私のやり方は次のとおりです: 私のアプリケーションデリゲートでは、タブビューを表示します。 次に、情報xを確認します。存在しない場合は、サブビューview2を追加して上に表示します。 view2では、私は情報をキャプチャし、ボタンをクリックするとスーパービューから削除します。必要なデータは、モデルのグローバル変数に格納されます。 コントロールは、それを示したタブビューに戻ります。 問題は、正しい情報が反映されるように、タブ・ビューで表データを再ロードする必要があることです。しかし、私は親のタブビューでこれをキャプチャすることができません。ですから、私がリフレッシュできる唯一の方法は、ボタンを手動でクリックすることです。これは理想的ではありません。サブビューがスタックから削除されるとすぐに自動的にリフレッシュするようにします。

答えて

4

これを行うには、新しいデータが追加されたときにモデルに通知を送信するのが最適です。あなたのテーブルビューコントローラはその通知を聞くことができ、受信したときにその通知をリロードすることができます。

アップルのPosting a NotificationRegistering for a Notificationの説明を参照してください。

+0

どのような迅速な答え!すでにそれを実装し、それを動作させました! - ありがとう – user542584

1

親ビューをサブクラス化し、willRemoveSubview:をオーバーライドする方法もあります。これは、スーパービューからビューが削除される直前に呼び出されます。

6

通知の登録と呼び出しが行き届いています。

- (void) viewDidLoad { 
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(updateView:) name:@"updateView" object:nil]; 
} 

- (void)updateView:(NSNotification *)notification { 
    /* this is where the updates will take place, 
     such as a [tableView reloadData]; 
    */ 
} 

そして、その通知を呼び出すために:あなたは通知を送信したいビューのために

[[NSNotificationCenter defaultCenter] postNotificationName:@"updateView" object:nil]; 
+0

サンプルコードをありがとう - これは私の最初の投稿ですので、投票することはできません。あなたの助けに感謝します – user542584

+0

私の答えにチェックマークを付けることができますが、これはupvoteと同じです; D – WrightsCS

+0

はチェックマークで複数の回答をマークしようとしましたが、それは最初に来て、実際に私に解決策を与えたからです。次回は:) ..ありがとう! – user542584