我遇到了这个问题,我得到了一些示例代码,并尝试与UIBarButtonItems
交换两个普通按钮。
谁能说出我的代码有什么问题,我不知道普通按钮和UIBarButtonItems
有什么不同。
因此我将showPopup中的发件人从UIView
更改为UIButton
,但是现在又出现了另一个错误(请参见下面的屏幕快照)
Screenshot of the error messages and the code
很抱歉,发布的是代码图片,而不是代码。
以下是shopPopup
函数:
func showPopup(sender: UIButton, mode:String, text:String="", row:Int=0) {
if !(mode=="edit" || mode=="new") { return }
let popVC = storyboard?.instantiateViewController(withIdentifier: "NewPopup") as! NewPopupVC
popVC.mode = mode
popVC.currentText = text
popVC.currentRow = row
popVC.modalPresentationStyle = .popover
let popPC = popVC.popoverPresentationController!
popPC.sourceView = sender
popPC.sourceRect = sender.bounds
popPC.delegate = self
popPC.permittedArrowDirections = [.up, .down]
present(popVC, animated:true, completion: nil)
}
这里是功能addButton
。那就是第一个错误所在。
@IBAction func addButton(_ sender: UIBarButtonItem) {
showPopup(sender: sender, mode: "new")
}
,这里是第二个错误发生的部分。
@objc func handleLongPress(_ gesture: UILongPressGestureRecognizer) {
if gesture.state != .began { return }
let pt = gesture.location(in: tableView)
if let path = tableView.indexPathForRow(at: pt),
let row = (path as NSIndexPath?)?.row,
let cell = tableView.cellForRow(at: path)
{
showPopup(sender: cell,
mode: "edit",
text: todoList[row],
row: row)
}
}
已更新最近一次发生的错误的屏幕截图。 Screenshot
答案 0 :(得分:0)
您必须这样做
func showPopup(sender: UIButton, mode: String, text:String = "", row:Int = 0)
将sender
从UIView
更改为UIButton