Повторно создать кнопки панели навигации раскадровки - PullRequest
0 голосов
/ 06 апреля 2019

У меня есть два элемента панели кнопок, настроенные в раскадровке и подключенные к следующим розеткам:

 @IBOutlet weak var sideMenuButton: UIBarButtonItem!

 @IBOutlet weak var selectButton: UIBarButtonItem!

Когда нажата кнопка выбора, я заменяю эти кнопки на две другие, например:

deleteButton = UIBarButtonItem(title: "Delete", style: .plain, target: self, action: #selector(deleteButtonPressed(_:)))      
cancelButton = UIBarButtonItem(title: "Cancel", style: .plain, target: self, action: #selector(cancelButtonPressed(_:)))

navigationItem.leftBarButtonItem = cancelButton
navigationItem.rightBarButtonItem = deleteButton

Теперь я хочу все вернуть обратно при нажатии кнопки отмены. Я пытаюсь сделать это, передавая розетки в barButtonItems:

navigationItem.leftBarButtonItem = sideMenuButton
navigationItem.rightBarButtonItem = selectButton

но это не работает и ничего не появляется. Как я могу это исправить, не настраивая все кнопки в коде? Есть ли способ сбросить панель навигации или создать новые кнопки на раскадровке?

1 Ответ

0 голосов
/ 06 апреля 2019

Ваши два выхода weak.Поэтому, когда вы их больше не используете, они становятся nil.Удалите weak из объявлений розеток, и ваш код должен работать как положено.

...