1

同じボタンに 2 つの異なる巻き戻し方法を割り当てることができるかどうかを知りたいです。例えば:

私はこのビューのナビゲーションを持っています:

  • ホーム->A->B
  • ホーム->C->B

A ビューと C ビューは B に移動しますが、同じ B ビューとコントローラーを使用して前のビューに戻りたいと考えています。

可能です?

どのビューが来るかに応じて、プログラムでボタンに割り当てアンワインドメソッドを書き込むことを考えていました。

前もって感謝します

私の英語が下手で申し訳ありません。

4

2 に答える 2

1

これが私にとってうまくいったSwiftソリューションです。以下のコードは、ストーリーボードとコードでセグエを正しく接続した場合にのみ機能します。アンワインド セグエの設定に関する優れた説明については、このページをご覧ください。

要約すれば:

  1. 他の複数のビューから同じビューにアクセスしています。そのため、ビューにセグエするときに、ソース ビュー コントローラー (現在のビュー) を移動先のビューのプロパティに渡すことができます。

  2. 巻き戻すビューで、どこから来たかに関する情報 (クラス) を保持しているプロパティを確認し、それがどのビューであるかに基づいてセグエを実行できます。

コード: (使用例: ホーム -> A -> B または... ホーム -> C -> B)

注: B は、複数の異なるビューに巻き戻すビューです。

A または C: (コードは両方のビューで同じように機能します)

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if segue.identifier == "segueIdentifierInViewAthatGoesToViewB" {  
        let controller:B = segue.destinationViewController as! B
        //the code below passes our current view controller class to a property in view B. 
        //So, view B will know what view we came from. 
        //In our example, we're coming from view A or C
        controller.viewControllerNavigatedFrom = segue.sourceViewController
    }
}

B:

// ソース ビュー コントローラー (このビューにセグエしたときに渡したもの) をチェックし、元の場所に基づいてセグエを実行する IBAction をセットアップします。これをボタンまたは本当に必要なものに接続できます。

//isKindOfClass(A) - 「A」はクラスの名前です

//setup a property to receive the view controller class where we are coming from
var viewControllerNavigatedFrom:AnyObject?

@IBAction func myButtonPressed(sender: AnyObject) {
    if self.viewControllerNavigatedFrom!.isKindOfClass(A) {
        //Unwind to view A
        performSegueWithIdentifier("unwindFromBbackToA", sender: sender)
    }
    else if self.viewControllerNavigatedFrom!.isKindOfClass(C) {
        //Unwind to view C
        performSegueWithIdentifier("unwindFromBbackToC", sender: sender)
    }
}
于 2015-09-04T14:42:41.767 に答える
0

ただし、質問はあまり明確ではありません。しかし、私が理解できるのは、ユーザーがどこから来たかに応じて、前のビュー、つまり B>C または B>A に戻りたいということです。

その場合は、 UINavigationControllerを確認してください。ナビゲーション履歴を追跡し、自動的に戻るボタンを追加します。ブラウザの戻るボタンのようなものです。

少し古いですが、ここにチュートリアルがあります:リンク

于 2015-03-02T14:18:26.130 に答える