实现我自己的委托时未调用 UIAlertViewDelegate 方法 clickedButtonAtIndex
Posted
技术标签:
【中文标题】实现我自己的委托时未调用 UIAlertViewDelegate 方法 clickedButtonAtIndex【英文标题】:UIAlertViewDelegate method clickedButtonAtIndex not getting called when implementing my own delegate 【发布时间】:2015-01-10 10:14:59 【问题描述】:我想从不同的 ViewController 中弹出一个警报。因为我想处理用户是否始终单击“确定”或“取消”,所以我决定实现自己的 UIAlertViewDelegate 并从我的 UIViewController 调用它。
问题是,当我单击“确定”或“取消”时,将永远不会调用 willDismissWithButtonIndex、didDismissWithButtonIndex 和 clickedButtonAtIndex。我知道我的委托正在被使用,因为将在警报显示时调用 willPresentAlertView() 和 didPresentAlertView()。
这是我代表的代码:
import UIKit
class AlertViewDelegate: NSObject, UIAlertViewDelegate
func willPresentAlertView(alertView: UIAlertView)
println("will present")
func didPresentAlertView(alertView: UIAlertView)
println("did present")
func alertViewCancel(alertView: UIAlertView)
println("cancelled")
func alertView(alertView: UIAlertView, willDismissWithButtonIndex buttonIndex: Int)
println("will dismiss")
func alertView(alertView: UIAlertView, didDismissWithButtonIndex buttonIndex: Int)
println("did dismiss")
func alertView(alertView: UIAlertView, clickedButtonAtIndex buttonIndex: Int)
println("clicked")
这是我的 ViewController 的代码:
class ViewController: UIViewController
override func viewDidLoad()
super.viewDidLoad()
var delegate = AlertViewDelegate()
var alert = UIAlertView(title: "alert", message: "blah blah", delegate: delegate, cancelButtonTitle: "cancel", otherButtonTitles: "OK")
alert.show()
我做错了什么?
【问题讨论】:
UIAlertView 在 ios 8 中已弃用 【参考方案1】:这个变量 'var delegate = AlertViewDelegate()' 在作用域结束时被释放
所以什么都没有,尝试将delegate
移动到属性
【讨论】:
以上是关于实现我自己的委托时未调用 UIAlertViewDelegate 方法 clickedButtonAtIndex的主要内容,如果未能解决你的问题,请参考以下文章
在 UITableviewCell 中使用 UICollection 视图时未调用 UICollectionView 委托方法“didSelectItemAtIndexPath”