// delegate页面反向传值
// 第二个页面
// 1.自定义一个协议及里面的事件方法--相当于制造了一个工具给工人用,并规定干什么活
protocol selectCityDelegate {
func didChangeCity()
}
// 2.在本页面有有一些事情发生,这些事件函数究竟放在那里--相当于告诉别人这个工具是谁所有的
var delegate:selectCityDelegate?
// 3.哪里执行写到哪里
// ? :delegate有值则继续执行后面的调用,若为nil,则不执行后面的回调
delegate?.didChangeCity()
// 第一个页面
// 1.遵守协议
selectCityDelegate
// 2.实现协议
func didChangeCity() {
}
// 3.第二个页面的事件函数委托给本controller实现
委托.delegate = self
as -->向上转型--upcasting或转换一般类型(类似于Int(3.2))--用的少
as? -->向下转型--downcasting--可能为空的情况下使用,要用if--let(可选绑定)
as! -->向下转型--downcasting--强制转换类型,在明确的情况下使用