Как вызвать функцию в представлении SwiftUI из UIBarButtonItem? - PullRequest
0 голосов
/ 05 апреля 2020

У меня есть представление SwiftUI с очень простым методом, который просто добавляет другой элемент пользовательского интерфейса в массив. Вот как это выглядит:

Button(action: {
 self.addCard()
}) {
 Image(systemName: "plus")
}
func addCard(){
  self.createCards.append(CardInputter())
}

Я пытаюсь вызвать эту функцию из многострочного класса текстового поля, который у меня есть, который в основном написан на UIKit. Я нашел код для этого здесь: { ссылка }

Я хотел добавить панель инструментов на клавиатуре и добавить кнопку, которая вызывает функцию, которую я вставил выше. Я успешно добавил панель инструментов на клавиатуру, хотя я не совсем уверен, как устранить разрыв и заставить ее вызывать мою функцию.

Вот как я делаю панель инструментов:

let toolbar = UIToolbar()
        toolbar.setItems([
            UIBarButtonItem(
                barButtonSystemItem: .flexibleSpace,
                target: nil,
                action: nil
            ),
            UIBarButtonItem(
                image: UIImage(named: "add-simple-filled"),
                style: UIBarButtonItem.Style.plain,
                target: self,
                action: nil
            ),
            UIBarButtonItem(
                barButtonSystemItem: .flexibleSpace,
                target: nil,
                action: nil
            ),
        ], animated: true)

        toolbar.barStyle = UIBarStyle.default
        toolbar.sizeToFit()
        textField.inputAccessoryView = toolbar

Кроме этого, код полностью такой же, как в ссылке выше.

Я пытался установить цель для моей структуры swiftUI и действие в качестве селектора для функции addCard, но он сказал, что не может разрешить идентификатор.

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