2011-06-25 14 views
0

これまでのiPhoneと同様の問題が発生しましたが、同じ解決策はiPad環境には適用されません。私の目標は、私のRootViewControllerで定義された私のメソッドforceReloadを呼び出すことです。このメソッドは、モーダルが解除されると、DetailViewからRootViewのcountdown_tableのデータをリロードします。 forceReloadは、RootViewControllerから直接呼び出されたときに正常に動作しますが、DetailViewからRootViewControllerをポイントするようには見えません。詳細ビューからMasterViewのreloadData

私は

RootViewController *root_view = [self.splitViewController.viewControllers objectAtIndex:0]; 
[root_view forceReload]; 
[root_view.countdown_table reloadData]; 

を使用してみました。しかし、それの内部ナビゲーションコントローラにその点だけではなく、ビューコントローラました。モーダルが解除されても、RootViewControllerののviewWillAppearは起動しません。

このファイルをどのようにポイントできますか? ありがとう!

答えて

7

通知を使用して、つまり、DetailViewまたは任意のビューが送信する可能性のある通知の観測者としてRootViewControllerを登録してみます。

[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(forceReload) 
              name:@"reloadRequest" 
              object:nil]; 

viewDidUnloadかのdeallocで:

[[NSNotificationCenter defaultCenter] removeObserver:self]; 

そして、あなたのDetailViewControllerやあなたのモーダルビュー(あなたは、彼らが同じだと言っていなかった)で、これを入れRootViewControllerののviewDidLoadで

ビューを閉じる前、またはRootViewControllerがforceReloadを呼び出すために必要なときに正確に:

NSNotification *notif = [NSNotification notificationWithName:@"reloadRequest" object:self]; 
[[NSNotificationCenter defaultCenter] postNotification:notif]; 
+0

よりあなた!これは私のアプリで完璧に機能しました! – drfranks3

+0

私はこれを逆の順序で(マスターからの詳細のreloadData)試みましたが、運はありません。それについてのアドバイスは? –

+0

@ LukeIrvin、これにコードを投稿できますか?また、詳細のビュー(Will | Did)にreloadDataは表示されませんか? – MarcoCabazal

関連する問題