gpt4 book ai didi

ios - UIAlertViewDelegate 方法 clickedButtonAtIndex 在实现我自己的委托(delegate)时没有被调用

转载 作者:行者123 更新时间:2023-11-28 10:25:12 25 4
gpt4 key购买 nike

我想从不同的 ViewController 弹出一个警告。因为我想处理用户是否一致地单击“确定”或“取消”,所以我决定实现我自己的 UIAlertViewDelegate 并从我的 UIViewController 调用它。

问题是,当我单击“确定”或“取消”时,永远不会调用 willDismissWithButtonIndex、didDismissWithButtonIndex 和 clickedButtonAtIndex。我知道我的委托(delegate)正在被使用,因为在显示警报时会调用 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()
}

}

我做错了什么?

最佳答案

此变量“var delegate = AlertViewDelegate()”在作用域末尾释放所以没有调用,尝试将 delegate 移动到属性

关于ios - UIAlertViewDelegate 方法 clickedButtonAtIndex 在实现我自己的委托(delegate)时没有被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27875051/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com