2017-08-15 7 views
1

ボタンを押すと、新しいView Controllerを起動したいので、新しいView Controllerに情報を渡したいと思います。これは、グローバル変数を使用することによって、セグメントメソッドを使用しないで処理されます。Segueメソッドとその目的

しかし、私がセグーメソッドを使用する場合、どちらを使用する必要がありますか?

performSegue()またはshouldPerformSegue()

+0

あなたは 'prepare(for segue:sender:)'を試みましたか? – Tj3n

+0

最初のもの、2番目はデリゲートメソッドです。 https://developer.apple.com/documentation/uikit/uistoryboardsegue – vadian

+0

いいえ、私はしませんでしたが、preprare()メソッドの前にこれらのメソッドの1つを呼び出さなければならないと聞きました – Goktug

答えて

1

あなたは上記の方法であなたのセグエを開始し、あなたがあなたの次のビューコントローラをプッシュすることができます

func performSegue(withIdentifier identifier: String, 
      sender: Any?) 

を呼び出す必要があります。

あなたの情報

func shouldPerformSegue(withIdentifier identifier: String, 
       sender: Any?) -> Bool 

ための方法は、セグエを実行するかどうかをどうかを指定しますブール値を返します。あなたはコントローラを持っており、メソッドからtrue/falseを返すことでsegueの実行を許可するかどうかを許可することができます。

- セグエが許可され、実行されます

- セグエが許可されていないと中止されます。

ストーリーボードで定義したセグをオーバーライドし、実行時に他のセグを実行する場合は、この方法を使用できます。

2

あなたがプログラムでセグエを開始したい場合はperformSegueを使用する必要があります。

shouldPerformSegueを使用すると、開始されたセグが実際に起こるかどうかを判断するロジックを追加できます。

最後にprepareForSegueには、名前が示すように、セグを準備することができます(たとえば、目的のビューコントローラーにデータを渡すなど)。

関連する問題