私はviewController2にモーダルセグエを作るviewController1を持っていますが、
viewController2 はナビゲーション コントローラーに埋め込まれています
そこにナビゲーションバーが必要だからです。
viewController2 から viewController1 にデータを送り返すプロトコルを実装しましたが、機能しません。これが私のコードです:
protocol writeValueBackDelegate {
func writeValueBack(value: String)
}
class viewController1: UITableViewController, writeValueBackDelegate {
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "SelectAddress"{
if let dest = segue.destinationViewController as? MapAddressViewController{
dest.delegate = self
}
}
}
}
viewController2 で私はこれを持っています:
class viewController2: UIViewController{
var delegate: writeValueBackDelegate?
@IBAction func TaskOneClick(sender: AnyObject) {
delegate?.writeValueBack(txtAddress!.text!)
self.navigationController?.popViewControllerAnimated(true)
}
}
理由はわかりませんが、2番目のviewControllerからナビゲーションコントローラーを削除し、viewController 1からviewController 2に直接セグエを作成した場合にのみ機能しますが、ナビゲーションバーを表示するにはナビゲーションコントローラーが必要です。
なぜそれが起こっているのか知っていますか?またはなぜ私が悪いことをしているのか。