protocol BaseCtrlDelegate {
func dismissPushedCtrl(controller: UIViewController)
}
class BaseCtrl: UIViewController, BaseCtrlDelegate {
var baseMsg: String! {
didSet {
print("BaseCtrl:" + baseMsg)
}
}
//获取即将出栈的ViewController的实例,相当于获取它内部的数据(如msg)
func dismissPushedCtrl(controller: UIViewController) {
if let pushedCtrl = controller as? PushedCtrl{
//传值
baseMsg = pushCtrl.backMsg
loginCtrl.navigationController?.popViewControllerAnimated(true)
}
}
//......
//跳转按钮点击事件
func push() {
baseMsg = "I'm coming!"
let pushedCtrl = PushedCtrl()
//传值
pushedCtrl.backMsg = baseMsg
pushedCtrl.delegate = self
self.navigationController?.pushViewController(pushedCtrl, animated: true)
}
}
class PushedCtrl: UIViewController {
//......
var backMsg: String! {
didSet {
print("PushedCtrl:" + backMsg)
}
}
var delegate: BaseCtrlDelegate!
//返回按钮点击事件
func back() {
backMsg = "I'm back!"
delegate.dismissPushedCtrl(self)
}
}
Swift传值
最新推荐文章于 2018-12-18 16:40:21 发布