プロジェクト内で小さな問題に直面しています。横向きで SplitView を使用するシンプルな IPad アプリがあります。以下に示すように、MasterViewController はテーブルビューであり、DetailView は WebView です。
上図の結果は次のようになります。
その後、すべてを ECSlidingViewController 内に配置しました。MasterViewController の「メニュー」ボタンをタップすると、以下に示すようなサイド メニューが表示されます。
ここで、メニューの他のオプションをタップできます。たとえば、メニュー内の「連絡先」をタップすると、関連付けられたビュー コントローラーが次のように表示されます: (このビュー コントローラーには詳細ビューがありません)
この時点まではすべて問題なく、まさに私が望んでいたものです!!!! メニューボタンをもう一度タップしてメニューを表示し、「ナビゲーション」をもう一度選択してテーブルビューを表示すると、問題が発生します。「ナビゲーション」をタップすると、MasterView が表示されますが、以下に示すように DetailView が非表示になります。
それ以外は、上記の表のエントリをタップすると、プログラムがクラッシュし、コンソールに次のメッセージが表示されます。
* -[UIStoryboardReplaceSegue perform] でのアサーションの失敗、/SourceCache/UIKit_Sim/UIKit-2380.17/UIStoryboardBuiltInSegues.m:63 2013-03-30 13:59:58.179 19IPadIPad[5806:c07 ] 、理由: '' の分割ビュー コントローラーの祖先が見つかりませんでした。分割ビュー コントローラーの実行中にセグエ (識別子 'pushLink') を宛先 ''' に置き換えます *** 最初のスロー コール スタック: (0x217b012 0x16bce7e 0x217ae78 0x1152665 0xa57349 0xa48b99 0xa48c14 0x6b0249 0x6b04ed 0x10ba5b3 0x213a376 0x2139e06 0x2121a82 0x2120f44 0x2120e1b 0x1d587e3 0x1d58668 0x600ffc 0x24 と呼ばれる liblib の例外が呼び出され、例外が呼び出されます。
誰かが問題を調べて、問題がどこにあるのかを教えてもらえますか? 前もって感謝します。
アップデート:
チャットでユーザーと話した後、メニューのナビゲーションをタップした後、次に表示されるのはマスタービューのみであり、スプリットビューは実際にはロードされていません。それが問題のようですが、それを修正する方法がわかりません。
アップデート:
ECSlidingView と SplitView の統合方法
ECSlidingView がプロジェクトと SplitView にどのように接続されているかを尋ねるコメントを受け取った後、質問を更新しています。
UISplitViewController から継承された 'MainSplitViewController' という名前のクラスを作成し、ID インスペクターのストーリーボードの splitView に接続しました。また、「SplitTop」のストーリーボード ID を指定しました。
次に、InitialViewController で、次のように SplitView を topviewcontroller として呼び出しました。
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
self.topViewController = [storyboard instantiateViewControllerWithIdentifier:@"SplitTop"];
}
上の画像でわかるように、MasterViewController で [Menu] ボタンを押すと、ECSlidingView メニューが表示されます。そのメニュー ボタンは IBAction を使用して ECSlidingView を表示します。
- (IBAction)revealMenu:(id)sender {
[self.slidingViewController anchorTopViewTo:ECRight];
}