下面是我为在iOS7上运行而实现的控制器:
import UIKit
@objc(StartViewController)
class StartViewController: UIViewController, UIAlertViewDelegate {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override func viewDidAppear(animated: Bool) {
let confirm:UIAlertView = UIAlertView(title: "sdfsdf", message: "sfsff3333", delegate: self, cancelButtonTitle: "cancel")
confirm.alertViewStyle = UIAlertViewStyle.Default
confirm.show()
}
// MARK: UIAlertViewDelegate
func alertView(alertView: UIAlertView, clickedButtonAtIndex buttonIndex: Int) {
println("buttonIndex: "+buttonIndex)
}
func alertViewCancel(alertView: UIAlertView) {
println("cancel")
}
}结果是,即使我正确地将委托设置为self,UIAlertViewDelegate中的任何函数也不会被调用。
当我单击警报对话框中的一个按钮时,我在控制台中得到了以下输出:
0x796d4984要使调用UIAlertViewDelegate 方法的方法被调用,必须做什么?
编辑:我也做了:
confirm.delegate = self这没什么用。
发布于 2015-04-22 11:33:10
当您制作alertView时,执行confirm.delegate = self (假设confirm是您的UIAlertView )。
发布于 2015-04-22 11:44:44
问题是这一行:println("buttonIndex: "+buttonIndex)
一定是这样的:
println("buttonIndex: \(buttonIndex)")发布于 2015-04-22 12:20:15
试试看做这个。我想,原因是你没有把委托分配给self(你的控制器)。
override func viewDidAppear(animated: Bool) {
let confirm:UIAlertView = UIAlertView(title: "sdfsdf", message: "sfsff3333", delegate: self, cancelButtonTitle: "cancel")
confirm.delegate=self;
confirm.alertViewStyle = UIAlertViewStyle.Default
confirm.show()
}https://stackoverflow.com/questions/29795984
复制相似问题