Вызов segue не обновляет навигационную панель (заголовок, кнопки) на ipad - PullRequest
0 голосов
/ 09 сентября 2018

В настоящее время я пытаюсь пройти через " Learning Swift 3rd Edition " от издателя O'Reilly, исходный код которого доступен здесь . В книге много известных ошибок , однако я не смог найти в ней свою конкретную проблему. Эта проблема также появляется в официальном коде, так что, вероятно, это не ошибка опечатки с моей стороны.

Таким образом, книга пытается научить концепции ручных переходов между двумя ViewControllers, первый из которых встроен в навигационный контроллер: main.storyboard

Раскадровка отображает панель навигации в редакторе ViewController так, как я хотел бы, чтобы она отображалась в конечном виде - с правкой в ​​качестве заголовка и кнопкой возврата, а не кнопкой отмены.

В Selfie ViewController есть действие, связанное с распознавателем жестов касания, которое, в свою очередь, вызывает функцию, которая в конечном итоге выполняет этот вызов:

self.performSegue(withIdentifier: "showEditing", sender: image)

, который работает, направляя меня к Edit ViewController. Затем я программно добавляю готовую кнопку к правой стороне панели навигации, поскольку в раскадровке она существует только неявно.

//add in a done button
let addSelfieButton = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(done));
self.navigationItem.rightBarButtonItem = addSelfieButton;

Проблема в том, что отображаемая на моем iPad (2018) панель навигации, которую я использую для тестирования, остается на панели навигации от Selfie ViewController, что означает, что она отображает «Отмена», заголовок «Selfie!» и он игнорирует мой код, чтобы добавить кнопку «Готово». Я отладил, и код для кнопки определенно вызывается. Добавление панели навигации вручную ничего не изменило, обновленная панель навигации просто не отображается.

Я не могу проверить это в симуляторе (так как он использует Vision / Core ML), и мой IPhone в настоящее время заблокирован для тестирования управлением устройством, поэтому у меня есть только IPad для тестирования.

Спасибо за любую помощь!

...