Я постараюсь объяснить, что происходит, но, пожалуйста, дайте мне знать, если я могу уточнить что-то еще. Естественно, у меня есть несколько контроллеров представлений, и между ними я использую сегменты для перехода и передачи. Ниже приведен порядок представлений, с которыми у меня возникла проблема:

  • Редактируйте вид профиля; выберите, чтобы увидеть текущий адрес
  • Показывается вид текущего адреса. В этом представлении есть кнопка "Назад" (выводит представление из стека)
  • .
  • Возвращаясь к представлению Редактировать профиль, я выбираю Обновить текущий адрес
  • .
  • Я выбираю сохранить адрес и получаю уведомление через UIAlert об успешном сохранении (отражается в бэкенде). Я нажимаю кнопку OK в UIAlert в связи со следующим действием:

    let okAction = UIAlertAction(title: "OK", style: UIAlertActionStyle.Default){
    UIAlertAction inself.basicMap.removeObserver(self, forKeyPath: "myLocation")
    self.performSegueWithIdentifier("backToEditFromWorkSegue", sender: self)}`.
    

Потом я автоматически возвращаюсь в Edit Profile. Если я нажимаю кнопку Done в представлении Edit Profile, представление исчезает, но снова появляется Update Current Address. Вот что я хочу знать, почему это происходит и как это можно решить. Кнопка Done в Edit Profile связана вот с чем:

self.customNavigationBar.leftBarButtonItem = UIBarButtonItem(barButtonSystemItem: .Done, target: self, action: "addTapped")

и addTapped является:

func addTapped()
{
    self.navigationController?.popViewControllerAnimated(true)
}

Из того, о чем я могу здесь рассуждать, я полагаю, что что-то идет не так с выскакиванием просмотров.

Ответы (1)

Ваш код выводит текущий контроллер представления из стека и показывает предыдущий контроллер представления. Я думаю, вы пытаетесь вернуться к корневому контроллеру представления? Если да, то попробуйте:

self.navigationController?.popToRootViewControllerAnimated(true)

2022 WebDevInsider