Ошибка UIBarButtonItem после его изменения с UIButton - PullRequest
0 голосов
/ 01 мая 2019

У меня возникла проблема: я получил пример кода и попытался обменять две нормальные кнопки на 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)
}
}

Обновлен скриншот последней возникшей ошибки. Скриншот

1 Ответ

0 голосов
/ 01 мая 2019

Вы должны сделать это

 func showPopup(sender: UIButton, mode: String, text:String = "", row:Int = 0)

Изменить sender с UIView на UIButton

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...