Storyboardで遷移先画面で処理を終えて元の画面に戻る際に値を受け取る
概要
今までprotocolとdelegateを使っていましたが、closureで書けることが抜けていたので自分メモ(標記はSwift 3です)。
遷移元のコントローラ
ListViewController.swift
class ListViewController: UIViewController {
// Storyboardで遷移時に呼ばれる
override func prepare(for segue: UIStoryboardSegue, sender: AnyObject?) {
// 遷移先のコントローラを取得
let controller = segue.destinationViewController as! EditViewController
// 遷移先で処理を終えた後の処理をここで書く
controller.resultHandler = { data_ in
print(data_) // テスト
}
}
}
遷移先のコントローラ
EditViewController.swift
class EditViewController: UIViewController {
var resultHandler: ((String) -> Void)?
// 何らかの処理をするメソッド
func hogeMethod() {
let data = "テスト"
// handlerに関数がセットされているか確認
if let handler = self.resultHandler {
handler(data)
}
// ListViewControllerに戻る
self.dismiss(animated: true)
}
}
Author And Source
この問題について(Storyboardで遷移先画面で処理を終えて元の画面に戻る際に値を受け取る), 我々は、より多くの情報をここで見つけました https://qiita.com/kenichi_odo/items/062ae2dbc9f7120257ed著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .