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