У меня возникла проблема: я получил пример кода и попытался обменять две нормальные кнопки на UIBarButtonItems
.
Может кто-нибудь сказать, в чем проблема в моем коде, я не знал, что нормальные кнопки и UIBarButtonItems
такие разные.
Итак, я изменил отправителя в showPopup с UIView
на UIButton
, но теперь есть еще одна ошибка (см. Скриншот ниже)
Снимок экрана с сообщениями об ошибках и кодом
Извините за публикацию изображений кода, но не кода.
Вот функция 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)
}
}
Обновлен скриншот последней возникшей ошибки.
Скриншот