Xcode 4.5 のボイラープレート マスター/ディテール アプリケーションから作成されたアプリがあり、CoreData、StoryBoards、および ARC がオンになっていて、prepareForSegue を呼び出していません。CoreData は現在使用されていませんが、XML 応答をキャッシュするために使用されます。performSegueWithIdentifier は機能しますが、prepareForSegue は機能しません。また、MasterViewController から performSegueWithIdentifier によって作成された detailViewController へのデータの受け渡し/アクセスに問題があります。
私の基本的なセットアップは、スレッドで説明されている内容に似ています: Storyboards および UISplitViewControllers。3 ページに、私のセットアップに非常によく似た絵コンテの画像があります (画像を投稿するのに十分な担当者がいません)。
手短に:
- 標準的な splitView 配置を作成します
- MasterViewController はメイン テーブルを構築します
- 各セルは、detailView の内容を決定する XML データを返す URL に対応します。
- フェッチされた XML は、NSXMLParser 操作/クラスを使用して解析されます
- フェッチされた XML は必要な詳細ビューを決定し、MasterViewController は適切な「置換」セグエを (performSegueWithIdentifier を介して) 呼び出して、対応する detailViewController を開始し、フェッチされた XML を表示します。
私が抱えている問題は、prepareForSegue が呼び出されていないため、取得した XML を detailViewController に渡すことができないことです。
私が必要とするのは、次のいずれかです。
- 実行するprepareForSegue
- handleLoadedResponse:notif 内の segue.destinationViewController を知る方法
- detailViewControllers の viewDidLoad メソッド内から MasterViewController の「currentResponse」変数にアクセスする方法
- StoryBoardID を介して MasterViewController を見つける方法
私が試したこと:
- 各viewControllerのprepareForSegueにNSLog()ステートメントを入れる - それらのどれも呼び出されない
- detailViewController の self.parentViewController チェーンを調べて、performSegueWithIdentifier を呼び出した MasterViewController を見つけます - 探しているクラス変数が見つかりません
- 私が見つけることができるほとんどすべての「prepareForSegue not called」投稿を読んでください-それらはすべて、コード/ストーリーボードに表示されないコーディング/ストーリーボードエラーが原因のようです
問題は、私が電話していることでしょうか:
[self.navigationController performSegueWithIdentifier:@"theDesiredSegue" sender:self];
handleLoadedResponse:notif コールバック内から、アプリが解析オブジェクトで prepareForSegue を呼び出そうとしていますか?
ティア
レイ