在Swift中,我的警报视图控制器有两个按钮,一个取消,一个添加。如何编程添加按钮以实际添加到列表

时间:2015-04-10 14:56:26

标签: swift uibarbuttonitem

我创建了一个条形按钮项。条形按钮项特别是“+”或添加按钮。我创建了一个UIAlertViewController,当按下“+”按钮时,它会出现两个按钮。一个是'添加',一个是'取消'。取消按钮工作正常,因为它会自动取消警报,但我想编程+按钮实际上让我添加到单元格视图。有人可以告诉我将进入添加按钮功能的代码。

1 个答案:

答案 0 :(得分:0)

我不熟悉UIAlertViewController类...在iOS 8中已弃用UIAlertView。如果此问题与使用UIAlertController有关,那么这是一个示例。

假设一个名为datavar data = [1,2,3,4,5]的支持数组,它向表视图提供数据。

当用户点击UIBarButtonItem时,会调用以下方法:

@IBAction func addItem(sender: AnyObject) {
    let avc = UIAlertController(title: "Add item", message: "Are you sure?", preferredStyle: .Alert)

    let addItem = UIAlertAction(title: "Add", style: .Default) { action in
        let lastNumber = self.data.last
        if var ln = lastNumber {
            self.data.append(++ln)
            self.tableView.reloadData()
        }
    }
    avc.addAction(addItem)

    let cancelItem = UIAlertAction(title: "Cancel", style: .Cancel, handler: nil)
    avc.addAction(cancelItem)

    presentViewController(avc, animated: true, completion: nil)
}

首先使用UIAlertController样式创建.Alert的实例。接下来,您需要添加UIAlertAction来添加项目并取消警报。

UIAlertAction有一个名为handler的参数,它接受一个闭包。此闭包是将操作与按钮关联的方式。

例如,addItem警报操作使用尾随闭包语法。闭包将一些数据添加到表视图的模型中,然后调用reloadData()来显示数据。