【问题标题】:UIAlertView clickedButtonAtIndexUIAlertView clickedButtonAtIndex
【发布时间】:2015-07-29 08:55:50
【问题描述】:

我正在实现一个 UIAlertView,需要它在 iOS7 上运行。下面的代码有效,但我的问题是关于 alertView(alertView: UIAlertView, clickedButtonAtIndex buttonIndex: Int) 函数的行为。

我有一个 println("button index clicked (buttonIndex)") 我用来打印点击了什么按钮。按钮工作正常,打印 0 和 1。

但当 alertView 启动时,我也会打印 0。这就是假设的工作方式吗?还是这里有什么问题?

更新代码

        @IBAction func purgeDatabase() {

    // fetch request
    let fetchRequest = NSFetchRequest(entityName: "ConcreteBagEntity")
    var error : NSError?

    // execute fetch request
    if let fetchResults = self.managedObjectContext!.executeFetchRequest(fetchRequest, error: &error) as? [ConcreteBagEntity] {
        if error != nil{
            return
        }

        // if results are found
        if fetchResults.count != 0 {

            let purgeAlertController = UIAlertView(title: "Before you go ahead", message: "You are about to delete all your previous quotes. Are you sure you want to go ahead?", delegate: self, cancelButtonTitle: "Cancel")
            purgeAlertController.addButtonWithTitle("Ok")
            purgeAlertController.show()

        }// END IF FETCH != 0
        else{
            alertViewLaunch("Looks like there is nothing here to delete")
        }
    }//END FETCH REQUEST
}//END IBACTION

func alertView(alertView: UIAlertView, clickedButtonAtIndex buttonIndex: Int) {
    println("button index clicked -> \(buttonIndex)")
    if buttonIndex == 1 {
        purgeAllData()
    }
}

【问题讨论】:

    标签: swift ios7 uialertview


    【解决方案1】:

    你自己在下面一行中调用了它:

    self.alertView(purgeAlertController, clickedButtonAtIndex: Int())
    

    相反,您可以致电here

    【讨论】:

      【解决方案2】:

      当 alertView 启动时,您会打印 0。因为你在定义 alertView self.alertView(purgeAlertController, clickedButtonAtIndex: Int()) 的时候强行调用了它的委托方法。

      定义alertView的时候不需要写这行。评论这一行并尝试一下。其余代码正确。

      【讨论】:

      • 我怎么知道func alertView(alertView: UIAlertView, clickedButtonAtIndex buttonIndex: Int) 指的是let purgeAlertController = UIAlertView,以防我在这个视图控制器中有另一个 UIAlertView 我想捕获来自特定 UIAlertView 的交互?
      • 然后给所有你声明的alertView分配标签。然后在委托方法中检查标签并采取适当的行动。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-03
      • 1970-01-01
      • 1970-01-01
      • 2011-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多