私のストーリーボードに4つのViewControllerがあります。私はそれらのすべてがperformSegueによって私の "設定" ViewControllerにアクセスできるようにしたい。 これを実行するには、Ctrl +各ViewControllerから「Settings」ViewControllerにドラッグするのではなく、これを実行することが可能ですか?すべてを統治する1つのセグメント
答えて
単一のセグでは不可能です。 4種類の異なる4種類のセグが必要です。ViewControllers
しかし、これはプログラム的に行うことができます。
今、あなたは(このビューコントローラがナビゲーションコントローラを持っていることを確認してください)あなたのビューコントローラのいずれかからshowSettingsScreen()
を呼び出すことができますUIVIewController
extension UIViewController
{
func showSettingsScreen()
{
let storyBoard = UIStoryboard(name: "YourStoryBoardName", bundle:nil)
let settingsScreen = storyBoard.instantiateViewControllerWithIdentifier("YourSettingsViewControllerID")
self.navigationController?.pushViewController(settingsScreen, animated: true)
}
}
の拡張子を確認します。
実際には動作するかもしれません。私はそれをコンピュータ上で一度行ってみましょう。 –
私は本当にそうは思わないので、そうする方法があります。 Uは、あなたの4ビューコントローラのすべてにウルSettingsViewControllerを接続セグエを追加し、
prepareForSegue:sender:
or
shouldPerformSegueWithIdentifier:sender:
方法で使用されているセグエの識別子を定義するべきです。 Uはこれらの識別子を通じてセグをアクセスすることができます。あなたが "Ctrl +各ViewControllerから" Settings "ViewController"にドラッグすると、Navigation Controllerも選択できます。あなたのストーリーボードにNavigation Controllerを埋め込み、すべてのView ControllerにストーリーボードIDを定義するだけで完了です。インスタンス化するにはView ControllerのストーリーボードIDを使用してください。
ストーリーボードIDを割り当てる以外にも、ストーリーボードについては心配する必要はありません。Ctrl +ドラッグする必要はありません。
私は、もう1つエレガントなソリューション、つまりコンテナビューを使用すると考えました。 Container View Controllerでは、すべてのViewControllerを表示しながら、ボタンを押してSettingsViewControllerを共通に切り替えることができます。 幸せなコーディング..
あなたはできません。セグには、ソースとデスティネーションがそれぞれ1つしかありません。あなたはプログラム的にあなたの設定ViewController
をインスタンス化し、プッシュまたはプレゼントを使ってそれを表示することができます。あなたは何を考えなければならないのですが、なぜあなたは非常に多くの場所からセッティングに行く必要がありますか?それは悪いデザインと重複したコードの兆候かもしれません。通常、アプリケーションには、複数の画面から(何らかの種類のコンテナビュー実装を使用して)アクセスできるボタンまたはアクションが1つだけあり、1つの画面からしかアクセスできません。
これを行う方法が1つあります。 1つの埋め込みビューを含むルートビューコントローラと一致するビューを作成します。あなたのセグをこのルートコントローラに追加してください。あなたのアプリケーションでは、標準の子コンテナ技術を使って他のView Controllerを切り替えます。これは、UINavigationControllersが使用するコンセプトとほぼ同じです。
これの利点の1つは、すべてのコントローラに共通の要素が表示されるようにしたい場合、それらをルートコントローラに追加できることです。
しかし、それはすべてあなたが達成しようとしているものに依存します。
- 1. ロギング:1つのダンプですべてを統治しますか?
- 2. HAPI:H17パーサーはセグメントを分割せず、1つのHL7セグメントのすべてのデータを追加します
- 3. 1つで2つの7つのセグメントを実装するVHDL
- 4. ページャーのすべてのセグメントに対して1つのテーブルコントローラを実装する方法は?
- 5. 各状態ごとに1つのコマンド、またはすべてのコマンドを1つのコマンドで統一する1つのコマンド
- 6. 2つのモジュールのコードを1つに統合する
- 7. 2つのテーマを1つのレールに統合する方法
- 8. アレイの1セグメントを取得
- 9. Pentahoデータ統合:2つのXMLファイルを1つにマージする
- 10. すべてのボタンの1つのポップアップ
- 11. MongoDB:1つのキーですべてのエントリを見つける
- 12. ファイル内のすべての行を1つ1つ、Pythonで置換します。
- 13. すべてのdivを1つずつ表示します
- 14. 2つのMultiIndexレベルを1つのPandasに統合します
- 15. 1つを除くすべてのフォルダを削除する
- 16. すべてのフィールドを1つの行にグループ化する
- 17. すべてのアプリを1つのページに移行する
- 18. すべてのjavascriptファイルを1つのファイルにマージする
- 19. 1つのリスナーですべてのクリックマウスイベントを表示する
- 20. Mysql。 1つのテーブルすべてのエンティティのすべてのプロパティまたは各エンティティごとに1つのテーブル
- 21. 一度に1つずつフォルダ内のすべてのファイルを1つずつ変換するバッチスクリプトファイル
- 22. すべてのビューを1つに保持する方法は?
- 23. dacpacファイルをすべて1つのビルドで作成する
- 24. Nette Framework - 1つのプレゼンターにすべてをルーティングする
- 25. フォルダ内のすべてのファイルを1つずつ開く
- 26. すべてのターゲットとポッドを統合
- 27. 複数の巨大な.accdbファイルを1つに統合する
- 28. JUnitsを1つのポータルに統合する
- 29. プロジェクトを1つのプロジェクトに統合する
- 30. sparkR write.dfを1つのファイルに統合する
segueを使用する場合は、各ソースから宛先へのセグが必要です。または、設定ビューコントローラをインスタンス化し、セグを使用せずにプッシュ/プレゼンテーションすることができます – Paulw11
この回答を恐れていました。私が4つのコントローラすべてから同じものにセグをドラッグしなければならないという事実は道のりが醜いですが、もし私がしなければならない場合は、 –