View Controllersを接続する
storyboard
UIViewControllers
storyboard
上のオブジェク最初に最初のビューコントローラがナビゲーションコントローラに追加されます

次のアニメーションgifは、三つのview controllerを行に配置する方法を示しています。segue
segue
が追加され、各view controllerがスライドすることを意味するshow segueとして設定されています。/div>私は、最初と2番目のView Controllerと2番目と3番目のView Controller(それぞれ)の間に、Segues movetosecondとmovetothirdという名前を付けました。
アクションを持つボタンを追加
各view controllerにボタンを追加する必要があります(segue
を起動するコードを記述するため)。
これは、比較的簡単にドラッグ&ドロップ操作のみのボタンで表示)

移動データ PassデータをSegueにあたって
でーパスデータビューコントローラをsegue
.
最初のview controllerに切り替えると、重要な部分がコメントアウトされ(FirstViewControllerは、上記のアニメーションgifに示すように、最初のview controllerに関連するクラスです)、ボタンアク
これを使用して、performSegue(withIdentifier: String, sender: Any?)
を使用して、あるview controllerから別のview controllerに情報をセグメント化して渡します。
アクションを更新して、segue moveToSecondを呼び出します(上記のように)。 この場合、送信者を知る必要はないため、これはnilになりますが、segue
prepare(for:sender:)
を使用して、セグエの準備をします。 完成したメソッドは、次のようになります(これは最初のview controllerに追加されます):これは、私たちが訪問しているビューコントローラにdataSent
プロパティを持っていることに依存しています。
だから、これはむしろ魅力的な名前のSecondViewController
に配置することができますが、view controllerクラス内に配置された単純なプロパティです。これらを表示するにはどうすればよいですか?
私はアニメーションGIFのために行くでしょう。ータ: デリゲートを介してデータを戻します
第二のview controllerからデータを戻したい場合は、最初のview controllerにデータを戻したい場合があります。 このための1つの方法は、委任を使用することです。
これを行うには、デリゲートを設定します
次に、FirstViewController
のデリゲートに準拠する必要があります。
内でSecondViewController
func viewWillDisappear(_ animated: Bool)
ビューが置き換えられるたびにメッセージが送信されます
SecondViewController
func viewWillDisappear(_ animated: Bool)
func viewWillDisappear(_ animated: Bool)
そこにはいくつかのことがありますので、ここでは animated gif

Unwind Segue
The unwind segue gives us something rather more.
To traverse from First View Controller
to Second View Controller
to Third View Controller
is a stepwise process. However, an unwind segue gives the ability to move from Third View Controller
to First View Controller
, skipping the Second View Controller
entirely.div>

FirstViewController
FirstViewController
func unwindToFirst(_ unwindSegue: UIStoryboardSegue)
FirstViewController
The storyboard section of this by control — dragging from a button to the top-right hand button “exit”


So difficult to show! ここでは、アニメーションGIFです

それはまた上記と同様の方法でセグエを介してデータを渡すことが可能である。
独自のカスタムセグを作成する
独自のsegue
を作成する理由の一つは、ビューが表示されたときに素敵なアニメーションを作成す私のアニメーション?
私のアニメーション?
フェードアウト(人生、愛からの私たちのフェードアウトを表す)。
私たちが作成するセグエは、(上記のshowセグエではなく)カスタムセグエです。div>

このセグエ内で選択する必要がありますsegueのクラス、および識別子を設定します。 ここではそれをcustomSegue
と呼びます。p>

これは、新しいファイルを使用してカバーします新しいMyCustomSegue
クラス;私はむしろ創造的にこのファイルmycustomsegueと呼んできました。swiftは、UIStoryboardSegue
から継承します。
segueのアクションは、perform関数で実行されますwithオーバーライドされます。 override func perform()
私たちはperform()
MyCustomSegue
transitioningDelegate
private var selfRetainer: MyCustomerSegue? = nil
UIKit
UIStoryboardSegue
プレゼンテーションスタイルは、元のview controllerを置き換えるために.fullScreen
に設定されています。P>
transitioningDelegate
Presenter
Dismisser
UIViewControllerAnimatedTransitioning
NSObject
を採用します。
プレゼンターは非常に簡単に書くことができます。P>
ここでは、プレゼンターが機能を持つプロトコルを満たしていますfunc transitionDuration(using transitionContext: UIViewControllerContextTransitioning?) -> TimeInterval
func animateTransition(using transitionContext: UIViewControllerContextTransitioning)
。
これらの前者は単に時間ですが、1.5はこのフェードアニメーションのための時間のかなり素敵なスパンです。したがって、フェードは、半透明から不透明(つまり0.0から1.0)に表示されるview controllerのためのものになります。それは何ですか?
それは何ですか? あなたはすべてが含まれている遊び場をしたいですか? 私はあなたにそれを与えるでしょう:
より良いそれに仕事を持つ全体のレポになります。 Ok、それはこのページの一番下にあります。
結論
セグエは思っているほど簡単ではありませんが、アプリを介してユーザーの旅をアニメーション化し、データをプッシュすることができます。誰がそれを望んでいないだろうか?
私はこのガイドがあなたのユーザーとそのデータをアプリの周りに転送するこの(楽しいとはいえ)方法のための正しい方向への微調整を与えてくれたこ