Xcode7 beta
という名前のStoryboard Reference
に1つの新しいコントロールがあります。以下はそのイメージです。
その説明は
外部ストーリーボードのView Controllerのプレースホルダーを提供します。このプレースホルダーに接続されたセグエは、実行時に参照されるView Controllerをインスタンス化します。
質問は
更新(2016年1月6日):ストーリーボード参照の使用はveryシンプルで、ストーリーボードをよりクリーンで保守可能な方法で使用するのに役立ちます。 それの良いユースケースは、例えば複数のタブを持つUITabBarController
タブごとに1つのストーリーボードを作成し、Main.Storyboard
ストーリーボード参照を使用した個々のストーリーボードへのリンク。使用方法は非常に簡単です。ストーリーボード参照を作成した後は、ファイル名リンクし、個々のストーリーボード内の初期ビューコントローラーを設定する個々のストーリーボードのそれでおしまい! :)
次に続くのは、元の答えです@YogeshSutharの質問に答えました。
これは、アプリで複数のストーリーボードを使用している場合に使用できます。これまでは、他のストーリーボードからView Controllerをプログラムでインスタンス化する必要がありましたが、このリファレンスを使用して、同じストーリーボードのView Controllerと同じようにストーリーボードでセグエを作成できるようになりました
はい、現在のストーリーボードの1つのView Controllerを別のストーリーボードの別のView Controllerと接続し、これら2つの間にセグエを作成できます
はい、これはプログラムで他のストーリーボードからView Controllerをインスタンス化するために以前使用されていたコードを置き換えるために使用できます
[@AlexBassonへの更新]ストーリーボードの参照は、iOS 8、OS X 10.10、およびにデプロイできます。 watchOS 1。
まあ他の答えは私の質問に正しいです。
そして、コードを書かずにセグエ経由で別のストーリーボードからView Controllerを開くために使用されるStoryboard Reference
の使用を投稿したいと思います。 :)
NewStoryboard
という名前を付けました)。NewStoryboard
に配置します。Storyboard ID
(newVC
を指定しました)を指定します。Storyboard Reference
コントロールをドラッグアンドドロップします。Storyboard Reference
コントロールを選択し、Attributes Inspector
を選択します。NewStoryboard
を選択します。newVC
(NewStoryboard
ストーリーボードで使用したもの)として提供します。Storyboard Reference
を接続します。これで、コードを記述せずにセグエ経由でVCを開きます。:)多分そうではないように見えます:/
ストーリーボードの参照には、少なくともiOS 9.0、OS X 10.11、またはwatchOS用のWatchKit 2.0を対象としたアプリが必要でした。
- 古いiOSバージョン(iOS 9より前)で動作しますか?
回避策は次のとおりです(Xcode 8およびiOS 8.2で検証済み):
IOS 8を搭載したXcode 7でストーリーボードの参照をテストしたところ、失敗しました。
Illegal Configuration: Storyboard References cannot be the destinations of
relationship segues prior to iOS 9.0
最後にiOS Developer Libraryのドキュメント Xcode Releases がこのメモも追加されています(Currentバージョン:Xcode 7.2.1):
ストーリーボード参照は、iOS 8、OS X 10.10、およびwatchOS 1に展開できるようになりました。
それは良いニュースを意味しますが、それでもなお覚えておいてください:
ストーリーボード参照は、iOS 9.0より前の関係セグエの宛先にはできません
したがって、これらの2つの箇条書きを認識している場合は、次の手順に進んでください:)
画面とモジュールが多すぎる大きなアプリケーションの場合、モジュールごとにストーリーボードを複数のストーリーボードに分割するのが良い便利なオプションです。複数のストーリーボードを使用しているときに、異なるストーリーボードのviewController間でセグエを接続する必要がある場合、このコントロールを使用できます。このコントロールを使用している場合、instantiateViewControllerやpushViewControllerなどのコーディングを行う必要はありません。セグエを接続し、セグエを実行するだけで、必要に応じてprepareForSegueを使用できます。
あなたのすべての質問について議論しましょう:
どの状況でこれを使用する必要がありますか? -上記の答えを見つけたと思います。
これは、2つのストーリーボードのView Controllerをセグエ経由で接続するために使用されていますか? - [〜#〜]はい[〜#〜]
このアプローチは、別のストーリーボードのVCをプログラムで置き換えるために使用されますか?-このcontrol
古いiOSバージョン(iOS 9より前)で動作しますか? -うまくいくかもしれませんが、試していません