首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UIAlertViewDelegate clickedButtonAtIndex从来没有被调用过?

UIAlertViewDelegate clickedButtonAtIndex从来没有被调用过?
EN

Stack Overflow用户
提问于 2015-04-22 11:22:41
回答 4查看 274关注 0票数 0

下面是我为在iOS7上运行而实现的控制器:

代码语言:javascript
复制
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中的任何函数也不会被调用。

当我单击警报对话框中的一个按钮时,我在控制台中得到了以下输出:

代码语言:javascript
复制
0x796d4984

要使调用UIAlertViewDelegate 方法的方法被调用,必须做什么?

编辑:我也做了:

代码语言:javascript
复制
confirm.delegate = self

这没什么用。

EN

回答 4

Stack Overflow用户

发布于 2015-04-22 11:33:10

当您制作alertView时,执行confirm.delegate = self (假设confirm是您的UIAlertView )。

票数 0
EN

Stack Overflow用户

发布于 2015-04-22 11:44:44

问题是这一行:println("buttonIndex: "+buttonIndex)

一定是这样的:

代码语言:javascript
复制
println("buttonIndex: \(buttonIndex)")
票数 0
EN

Stack Overflow用户

发布于 2015-04-22 12:20:15

试试看做这个。我想,原因是你没有把委托分配给self(你的控制器)。

代码语言:javascript
复制
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()
  }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29795984

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档