Я пытаюсь переместиться от дочернего 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 для входа в контроллер просмотра
Спасибо заранее!