web-dev-qa-db-ja.com

戻るボタンでセグエ機能をほどく

ナビゲーションコントローラーでデフォルトの[戻る]ボタン(例<設定)を押しているときに、関数を呼び出そうとしています。

他の状況では、カスタムボタンを作成しています。Ctrl+ドラッグしてXCodeの赤い[終了]ボタンに移動し、それを[選択セグエ]にポイントしています。

ここで、ナビゲーションコントローラーのデフォルトの戻るボタンを使用する必要がありますが、ストーリーボードビューには戻るボタンがないため(ただし、シミュレーターには存在するため)、セグエアクションに割り当てるように設定することはできません。

シミュレーター:

Simulator

XCode: XCode

ナビゲーションコントローラーでカスタムボタンを作成し、カスタムの巻き戻しセグエを割り当てることができますが、そのボタンは "<"記号がないと醜くなります。

私はstackoverflowでいくつかの答えを見つけましたが、それらはすべてObjective-C :(で書かれています。

12
Vasily

デリゲートメソッドを使用して、目的を達成できます。

ここに本当に考え抜かれたSwiftデリゲートとセグエを扱うチュートリアル: http://makeapppie.com/2014/07/05/using-delegates-and-segues- part-2-the-pizza-demo-app /

あなたが求めていること、戻るボタンのアクションをキャッチする能力は、あなたがそれを説明する方法では不可能です。

ほとんどの人はカスタムボタンを作成してから、巻き戻しセグエを使用することをお勧めします。

Swiftを初めて使用する場合に備えて、カスタムの戻るボタンに関するチュートリアルはたくさんあります。カスタムの戻るボタンの見苦しい部分は、そこに独自の矢印を置くことで簡単に修正できます。

また、私は将来の参照のためにこの前の質問を見つけました: Swiftのナビゲーション戻るボタンからセグエを巻き戻します

1
YichenBman

実際には、アンワインドセグエをビューコントローラー全体に割り当てました(黄色のビューコントローラーアウトレットから右クリックし、出口アウトレットにドラッグして、関数を選択します)。これまでのところうまくいきます。カスタムボタンもデリゲートも必要ありません。実際、私のプロジェクトでは、子は現在の発信者のビューコントローラーに従って別の親の関数を呼び出すことになっており、同じ関数名を使用するだけで私の夢が実現します。

このページは私に大いに役立ちました: http://spin.atomicobject.com/2014/12/01/program-ios-unwind-segue/

1
smozgur