最近研究iOS8.0新出的控件UIAlertController也就是代替UIAlertView和UIActionSheet。我发现在UIAlertAction按钮事件中有闭包回调,我自定义了一个UIAlertView控件,也想试着用闭包回调,个人觉得代理有些麻烦哈,正好闭包回调还没研究过,就当试试吧!
网上稍稍看看,大致弄明白是怎么回事。
1.首先,创建闭包类型
// 创建闭包类型
typealias Account = (phone: String?, password: String?) -> Void
2.定义闭包函数变量
private var account: Account?
3.声明含有闭包变量的函数
internal func setTitleAndGetAccount(title: String, account: Account) {
navigationItem.title = title
self.account = account
}
4.触发闭包函数
if let nameAndPassword = account {
nameAndPassword(phone: phone, password: password)
}
5.闭包回调
minorVC.setTitleAndGetAccount("登录界面") { (phone, password) in
print("phone:\(phone) password:\(password)")
}
总结:大致情况就是这样的,如果我有写的不对的地方还希望各位大神多多指点,谢谢。
github项目地址:https://github.com/duanyicanyuan/Closure
网友评论