Навигация 1 Просмотр назад, затем переход к другому виду (анимация выглядит как обычная пу sh) - PullRequest
0 голосов
/ 06 января 2020

Я пытаюсь переместиться от дочернего viewcontroller обратно к его родительскому viewcontrolle и затем от этого родительского viewcontroller прямо к другому дочернему viewcontroller все, нажав одну кнопку, и когда это действие произойдет, анимация должно показаться, что дочерний viewcontroller перешел к другому дочернему viewcontroller, но когда вы нажмете на спину, ему нужно перейти к родительскому viewcontroller.

Я подумал о 2 способах:
• 1: переход от одного дочернего viewcontroller к другому дочернему viewcontroller и каким-то образом изменить действие, которое происходит при нажатии кнопки «Назад», чтобы перейти к родительскому viewcontroller вместо дочернего viewcontroller. (Если вы знаете, как это сделать, это даст мне те же результаты, поэтому, пожалуйста, ответьте, пожалуйста)

• 2: (Это то, что у меня сейчас есть) Функция делегата в родительском элементе, которая выскакивает текущий viewcontroller, так что он go вернется к родительскому viewcontroller (этот параметр является BOOL), и после всплытия перейдет в указанное место. Это хорошо работает! Но вы все еще можете увидеть родительский viewcontroller в этом процессе. Мне просто нужно, чтобы это выглядело так, как будто оно перешло непосредственно от одного ребенка к другому.

Дополнительная информация:

Представьте себе 3 представления контроллера:

  • VC1 (который может рассматриваться как родитель)
  • VC1.1 (дочерний контроллер VC1)
  • VC1.2 (также дочерний контроллер VC1)

Таким образом, изображение в вашей голове должно быть похоже на первые два слоя древовидной диаграммы.

       VC 1  
        /\
       /  \
      /    \
   VC.1   VC1.2

Поэтому мне нужен VC1.1 -> VC1 -> VC1.2 Но это действие должно выглядеть так: VC1.1 -> VC1.2 и когда вы находитесь на VC1.2 и нажимаете назад, VC1 должен отобразить.

Что я сделал :

    @IBAction func onAlreadyRegistered(_ sender: Any) {
        delegate?.navigate(to: .SIGNIN, popView: true)
    }

    func navigate(to: VC.NAVIGATIONS, popView: Bool) {
        // UIView.setAnimationsEnabled(false) // Tried disabling the animation as wll
        if popView {
            navigationController?.popViewController(animated: false)
        }
        performSegue(withIdentifier: to.abs, sender: self) // abs just returns the rawValue which is the String
        UIView.setAnimationsEnabled(true)
    }

Затем из родительского окна появится текущий контроллер представления, являющийся экраном регистрации, а затем выполните команду seque для входа в контроллер просмотра

Спасибо заранее!

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