ボタンを押して2番目のviewController
ボタンを押した後、2番目のビューコントローラに戻ってすぐにファンクション第1 ViewController
スウィフトファイル内にコード化されています。最初のビューで2番目のビュー(即時)から
どうすればいいのですか?セグー?
ボタンを押して2番目のviewController
ボタンを押した後、2番目のビューコントローラに戻ってすぐにファンクション第1 ViewController
スウィフトファイル内にコード化されています。最初のビューで2番目のビュー(即時)から
どうすればいいのですか?セグー?
これを行うには、とdelegate
の2つの方法があります。
を作成し、そのプロトコルをViewController1
に拡張することができます。 ViewController2
にプロトコルのdelegate
を作成し、ViewController1's
prepareForSegue
メソッドでそのデリゲートの参照を渡します。
まず今すぐViewController2
にの代理オブジェクトを作成し、このようViewController1
でこのプロトコルを拡張し、prepareForSegue
方法
class ViewController1 : UIViewController, PassdataDelegate {
func passData() {
//Here call your function
self.callMyFunction()
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if (segue.identifier == "SegueIdentifier") {
let destVC = segue.destinationViewController as! ViewController2
destVC.delegate = self
}
}
}
にデリゲートの参照を渡すこの
protocol PassdataDelegate {
func passData()
}
などのプロトコルを作成しますこのように
class ViewController2 : UIViewController {
var delegate: PassdataDelegate?
//Now call the method of this delegate in Button action
@IBAction func buttonClick(sender: UIButton) {
self.delegate.passData()
//Now dismiss the controller
}
}
注:ここで私はstring
を渡していますが、delegate
メソッドで宣言しているオブジェクトのタイプはすべて渡すことができます。
unwind segue
を参照できます。
class ViewController1 {
@IBAction func doSomeStuffAfterReload(segue: UIStoryboardSegue) {
// do whatever you need to do here.
}
}
exit outlet
から
button
からViewController2 Ctrlキー+ドラッグからストーリーボードで
、およびdoSomeStuffAfterReload
を選択します。
現在のアクションでそれを見ることができます:https://spin.atomicobject.com/2014/10/25/ios-unwind-segues/ ハッピー^^
あなたが第一のViewControllerを設定することができますが、2番目のビューコントローラのプロパティを委任しているコーディング。ボタンを押すと、第1ビューコントローラ – larva
にデリゲート関数を呼び出します。第2ビューコントローラが提示されると、コールバックとしてクロージャを渡し、 'IBAction'でクロージャを呼び出します。 – vadian