Swift 向后导航一个视图,然后向前导航到另一个视图(动画看起来像正常的推送)

Swift 向后导航一个视图,然后向前导航到另一个视图(动画看起来像正常的推送),swift,segue,xcode11,swift5,swift5.2,Swift,Segue,Xcode11,Swift5,Swift5.2,我正试图从一个子viewcontroller导航回它的父viewcontroller,然后从该父viewcontroller直接导航到另一个子viewcontroller,只需按下一个按钮,当此操作发生时,动画需要看起来像导航到另一个子viewcontroller的子viewcontroller,但当您点击“上一步”时,它需要导航到父viewcontroller。 我想到了两种方法: •1:从一个子viewcontroller导航到另一个子viewcontroller,并以某种方式更改单击“上一

我正试图从一个子viewcontroller导航回它的父viewcontroller,然后从该父viewcontroller直接导航到另一个子viewcontroller,只需按下一个按钮,当此操作发生时,动画需要看起来像导航到另一个子viewcontroller的子viewcontroller,但当您点击“上一步”时,它需要导航到父viewcontroller。

我想到了两种方法:
•1:从一个子viewcontroller导航到另一个子viewcontroller,并以某种方式更改单击“上一步”按钮时发生的操作,以将您带到父viewcontroller而不是子viewcontroller。(如果你知道怎么做,它会给我同样的结果,所以请回答,)

•2:(这是我目前拥有的)父级中的委托函数,弹出当前viewcontroller,以便返回父级viewcontroller(此参数为BOOL),弹出后,导航到指定位置。这很有效!但在此过程中仍然可以看到父视图控制器。我只需要让它看起来像是直接从一个孩子传到另一个孩子

其他信息:

想象3视图控制器:

  • VC1(可视为父级)
  • VC1.1(VC1的子viewcontroller)
  • VC1.2(也是VC1的子viewcontroller)
因此,你头脑中的图像应该类似于树形图的前两层

       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)
    }
这将从父级弹出当前视图控制器,即注册屏幕,然后执行顺序以登录视图控制器


提前谢谢你

如果它们是视图而不是视图控制器,并且“上一步”按钮转到父视图“是”,则可以覆盖“上一步”按钮功能,直接转到另一个子视图。是否可以显示当前的代码和您尝试的内容。@SouravSachdeva这是视图控制器,编辑了问题。谢谢。如果这些控制器由导航控制器管理,那么您的第一个想法就可以实现了。给VC1.2一个对VC1的引用,它可以使用
popToViewController
在被解除时跳回。因此,现在如果您正在使用故事板,那么如果您只是在使用需要检查的代码,那么这是一个顺序问题。无论哪种情况,您都需要发布故事板图像或代码方法片段。@SouravSachdeva我添加了代码

    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)
    }