ボタンを押すと、新しいView Controllerを起動したいので、新しいView Controllerに情報を渡したいと思います。これは、グローバル変数を使用することによって、セグメントメソッドを使用しないで処理されます。Segueメソッドとその目的
しかし、私がセグーメソッドを使用する場合、どちらを使用する必要がありますか?
performSegue()またはshouldPerformSegue()
ボタンを押すと、新しいView Controllerを起動したいので、新しいView Controllerに情報を渡したいと思います。これは、グローバル変数を使用することによって、セグメントメソッドを使用しないで処理されます。Segueメソッドとその目的
しかし、私がセグーメソッドを使用する場合、どちらを使用する必要がありますか?
performSegue()またはshouldPerformSegue()
あなたは上記の方法であなたのセグエを開始し、あなたがあなたの次のビューコントローラをプッシュすることができます
func performSegue(withIdentifier identifier: String,
sender: Any?)
を呼び出す必要があります。
あなたの情報
func shouldPerformSegue(withIdentifier identifier: String,
sender: Any?) -> Bool
ための方法は、セグエを実行するかどうかをどうかを指定しますブール値を返します。あなたはコントローラを持っており、メソッドからtrue/falseを返すことでsegueの実行を許可するかどうかを許可することができます。
真 - セグエが許可され、実行されます
偽 - セグエが許可されていないと中止されます。
ストーリーボードで定義したセグをオーバーライドし、実行時に他のセグを実行する場合は、この方法を使用できます。
あなたがプログラムでセグエを開始したい場合はperformSegue
を使用する必要があります。
shouldPerformSegue
を使用すると、開始されたセグが実際に起こるかどうかを判断するロジックを追加できます。
最後にprepareForSegue
には、名前が示すように、セグを準備することができます(たとえば、目的のビューコントローラーにデータを渡すなど)。
あなたは 'prepare(for segue:sender:)'を試みましたか? – Tj3n
最初のもの、2番目はデリゲートメソッドです。 https://developer.apple.com/documentation/uikit/uistoryboardsegue – vadian
いいえ、私はしませんでしたが、preprare()メソッドの前にこれらのメソッドの1つを呼び出さなければならないと聞きました – Goktug