在swift中,单击按钮不会激活操作

时间:2017-02-16 14:59:28

标签: ios swift uibutton

我正在使用Xcode 7中的一个简单的IPhone应用程序,我需要保存一些数据,以便我可以在表视图中加载它。

通过专用视图输入数据,该视图具有一些输入字段和两个按钮:“保存”,将数据保存到对象中,然后将该对象放入列表中,然后将“取消”返回到最后一个屏幕。

问题是:任何使用保存按钮的行为似乎都无法被识别。我已多次尝试打印出点击该按钮的内容,并且无法打印任何内容。

我的代码:

  • 按钮操作
@IBAction func buttonAction(sender: UIStoryboardSegue){
    if let sourceViewController = sender.source as? DataViewController,
        let dataObject = sourceViewController.dataObject{

            // Add new data - not really important for the question i guess
            let newIndexPath = IndexPath(row: dataList.count, section: 0)
            dataList.append(dataObject)
            tableView.insertRows(at: [newIndexPath], with: .automatic)


    }

    // Never prints anything
    os_log("DEBUG", log: OSLog.default, type: .debug)

}
  • 准备 - 数据准备
override func prepare(for segue: UIStoryboardSegue, sender: Any?){
        super.prepare(for: segue, sender: sender)

        guard let button = sender as? UIButton, button === saveButton else {

         // This one activates when we press "Cancel"
         os_log("The save button was not pressed, cancelling", log: OSLog.default, type: .debug)
            return
        }

       //Data object field filling lines

        let foo= nameTextField.foo ?? ""

        dataObject= Data(foo: foo)

    }
  • Action Hook的屏幕截图 UnwindToLocationView() is buttonAction()
      

    UnwindToLocationView()是buttonAction()

2 个答案:

答案 0 :(得分:1)

在Swift 3中,console.log(this.$store.state.ticketId) 必须有一个下划线字符作为外部参数名称

IBAction

答案 1 :(得分:0)

发件人应该是你的按钮:

 @IBAction func buttonAction(sender: UIButton){
    performSegue(withIdentifier: "mySegue", sender: nil)
    }

这是准备segue的样本

 override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if segue.identifier == "mySegue" , 
           let nextScene = segue.destination as? DetailController , 
           let indexPath = self.tableView.indexPathForSelectedRow {
            let selectedData = data[indexPath.row]
            nextScene.currentData = selectedData
        }
    }