Objective c 如何在另一个视图控制器后面显示视图控制器?
我试图介绍两个视图控制器。我尽量避免一个接一个地展示,因为这并不能提供良好的用户体验 我正在使用故事板/分段来显示视图控制器,每个视图控制器都嵌入到导航控制器中 行为应该是: 视图控制器1显示视图控制器2-但当视图控制器2关闭时,我希望视图控制器3显示给用户。理想情况下,还可以关闭以查看控制器1Objective c 如何在另一个视图控制器后面显示视图控制器?,objective-c,swift3,uinavigationcontroller,segue,uistoryboard,Objective C,Swift3,Uinavigationcontroller,Segue,Uistoryboard,我试图介绍两个视图控制器。我尽量避免一个接一个地展示,因为这并不能提供良好的用户体验 我正在使用故事板/分段来显示视图控制器,每个视图控制器都嵌入到导航控制器中 行为应该是: 视图控制器1显示视图控制器2-但当视图控制器2关闭时,我希望视图控制器3显示给用户。理想情况下,还可以关闭以查看控制器1 我知道我可以通过子视图来完成这一点。但理想情况下,我想学习如何通过操纵导航堆栈来实现 为了更好地理解您的问题,请尝试以下方法: 从VC 1显示VC 3,从VC 3立即显示VC 2(这可以通过将viewC
我知道我可以通过子视图来完成这一点。但理想情况下,我想学习如何通过操纵导航堆栈来实现 为了更好地理解您的问题,请尝试以下方法: 从VC 1显示VC 3,从VC 3立即显示VC 2(这可以通过将viewController显示代码放入VC 3的ViewDidLoad()中来完成) 因此,当您退出VC 2时,将显示VC 3,退出VC 3时,您将被重定向到VC 1
VC的意思是ViewController。在ViewDidLoad()中显示ViewController确实是个坏主意。
您可以显示VC3,并将VC1.view和VC2.view添加为VC3视图的子视图,以后您可以根据需要删除VC1.view和VC2.view,其行为将与预期的相同 我不认为你可以用
segue
做你想做的事,但是你当然可以用一点代码来做
这将(例如,在点击按钮时)直接从当前ViewController(称之为vc1
)到ViewController2
,但将ViewController3
插入堆栈中,执行导航控制器中的标准幻灯片动画。点击后退按钮将带您从vc2
到vc3
到vc1
@IBAction func didTap(_ sender: Any) {
guard let vc3 = storyboard?.instantiateViewController(withIdentifier: "vc3"),
let vc2 = storyboard?.instantiateViewController(withIdentifier: "vc2")
else { return }
let vcArray = [self, vc3, vc2]
self.navigationController?.setViewControllers(vcArray, animated: true)
}
如果要从vc2
返回到vc1
并“跳过”vc3
,请在vc2
中添加(例如,点击按钮):
您需要将要显示的viewcontroller.modalPresentationStyle设置为.currentContext,并且需要将当前viewcontroller.DefinePresentationContext设置为false如何显示它?UINavigationController中的“推送”序列?模态向上滑动和封面演示?添加您的语言标记,它始终是主语言。实际上,您不能在viewDidLoad()方法中演示或推送另一个ViewController。在viewDidLoad中编写推送或显示ViewController的代码将无效。@K.R.SaravanaKumar:是的,我的朋友,这就是我要说的。我们不应该在viewDidLoad()方法中显示或推送VC。检查第一行。在ViewDidLoad()中显示viewController确实是个坏主意。
@IBAction func backToStartTap(_ sender: Any) {
self.navigationController?.popToRootViewController(animated: true)
}