我正在使用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)
}
答案 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
}
}