15

iPad用のストーリーボードベースのアプリケーションを作成しようとしています。その中で、スタート画面(UIViewController)からメイン画面(UISplitViewController)に移行し、次に全画面表示(UIViewController)に移行する必要があります。

UISplitViewControllerは、RootViewController以外の方法でストーリーボードベースのアプリケーションで使用することはできないと述べて、Web上で(少なくともいくつか-stackoverflowで)多くの議論を見ました。一部のスレッドには回避策が含まれており、これに対処するための代替のsplitview(https://github.com/mattgemmell/MGSplitViewController )もあります。

しかし、私が理解できないのは、Appleのドキュメントがまったく逆のことを述べている理由です。これは、AppleのiOS5.0ライブラリからの章へのリンクです。それは述べています:


ストーリーボードを使用したスプリットビューコントローラーの作成

スプリットビューコントローラーをアプリケーションのストーリーボードに追加するには:

  1. アプリケーションのメインストーリーボードを開きます。
  2. 分割ビューコントローラをライブラリからドラッグします。これにより、分割ビューコントローラの2つのペインのビューコントローラも作成されます。
  3. 分割されたViewControllerに含まれているViewControllerごとに、IdentityInspectorを使用してViewControllerのクラス名を設定します。

分割ビューインターフェイスを表示するには、次のいずれかを実行します。

  • シーンを選択し、属性インスペクターの下の「Is Initial View Controller」ボックスをチェックして、最初のシーンとして表示します。
  • モーダルセグエを追加して、別のシーンから表示します。
  • モーダルセグエを開始するperformSegueWithIdentifier:sender:メソッドを呼び出して、プログラムで表示します。

私はさまざまな方法でそれを試しましたが、最後の2つのステートメントで説明したアプローチは機能しませんでした。モーダルセグエとperformSegue...の両方がよく知られたエラーで失敗します:

"***キャッチされなかった例外'NSInvalidArgumentException'が原因でアプリを終了しています、理由:'アプリケーションがSplitViewControllerをモーダルに提示しようとしました..."

それを説明できる人はいますか?これはXCODE/iOS 5.0のバグですか、それともドキュメントのバグですか?

よろしく、ペトル

4

4 に答える 4

2

このAppleの記事によると、分割ビューコントローラはルートである必要があります。スニペットは次のとおりです。

分割ビューコントローラは、作成するインターフェイスのルートである必要があります。つまり、UISplitViewControllerオブジェクトからのビューを、アプリケーションのウィンドウのルートビューとして常にインストールする必要があります。分割ビューインターフェイスのペインには、ナビゲーションコントローラ、タブバーコントローラ、またはインターフェイスを実装するために必要なその他のタイプのビューコントローラが含まれる場合があります。分割ビューコントローラをモーダルで表示することはできません。

于 2012-01-30T15:32:34.413 に答える
1

この質問が投稿された直後にドキュメントが更新されたようです。新しいドキュメントによると、ストーリーボードにセグエする方法はありません。残念!

于 2012-09-06T20:32:30.090 に答える
0

はい、UIView から UISplitView に渡すことは可能です。カスタム セグエを使用する必要があります。

このリンクを読んでください(日本語から翻訳してください)

UIViewController から UISplitViewController へ

于 2012-10-04T15:31:25.653 に答える
0

私に関しては、MGSplitViewController を使用して、モーダルまたはプッシュ セグエでSplitViewを実装しました。試してみてください、うまくいきます!

于 2013-04-23T20:56:08.540 に答える