UIKEt公式ドキュメント:ビューコントローラの表示と非表示

2786 ワード

Overview


ビューコントローラを様々な方法で表示し、
この記事では、画面切り替え中にデータを渡す方法について説明します.
アプリケーションのインタフェースビューコントローラを表示し、解任に伴って変更します.各ウィンドウには、初期画面を表示するルートビューコントローラがあります.新しいビューコントローラは、ウィンドウに新しいビューのセットをインストールし、初期画面を変更します.
ビューコントローラが不要になった場合は、ビューコントローラをキャンセルし、ウィンドウからビューを削除します.
ビューコントローラを表示する3つの方法
  • シーケンスイメージボード設計
  • 現在の脈絡が現在の方式を決定する
  • コンテナビューコントローラにビューコントローラを入れる
  • .
    ダイレクトコール
  • UI ViewControlメソッド
  • シーケンスイメージボードで現在の方法を設定する


    定格方式を使用します.
    初期ビューコントローラのaction(ボタン押下、テーブル列選択など)メソッドを持つ任意のオブジェクトから、他のビューコントローラに接続します.

    接続方法


    1.オブジェクトからCTRL+をドラッグ&ドロップし、表示したいビューコントローラにドラッグします.
    2.リストから必要なsegue方式を選択します.
    +はまた、実行時にsegueを閉じるためにsegue識別子を追加することもできる(後述).

    現在の脈絡で現在の方法を決定


    同じビューコントローラを複数の場所で使用すると、脈絡の使用に応じて現在の方法が変更されるという問題が発生します.
    たとえば、ナビゲーションコントローラに1つの場所に配置し、別の場所にモードで表示したい場合があります.
    この場合、この2つの方法のいずれかを使用して、現在の脈絡に基づいてビューコントローラを表示できます.show(_:sender:) showDetailViewController(_:sender:)正確には、これらの方法は、同じ表示方法を有する親ビューコントローラを検索するためにtargetViewController(forAction:sender:)を呼び出す.見つかったらparentメソッドを読み込み、新しいビューコントローラをナビゲーションスタックに入れます.(親がUInavigationControllerの場合)
    ただし、現在の方法を使用しているビューコントローラが1つもない場合、UIKITは新しいビューコントローラをモードで表示します.
    @IBAction func showSecondViewController() {
            let storyboard = UIStoryboard(name: "Main", bundle: nil)
            let secondVC = storyboard.instantiateViewController(identifier: "SecondViewController")
    
            show(secondVC, sender: self)
        }