5

プロジェクト内で小さな問題に直面しています。横向きで 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];

}
4

1 に答える 1