我尝试使用有4个场景的故事板创建应用程序:
我现在正在做的事情如下:我有一个UINavigationController,其中有ChooseLoginMethod作为其根视图。 ChooseLoginMethod有几个按钮(用于不同的登录方法),它们是推送到EnterLoginData的segue。 EnterLoginData对SuccesfullLogin有一个push segue,而SucessfullLogin对MainScene有一个推送segue。
问题是SuccessfulLogin和MainScene在顶栏上显示后退按钮,这对应用程序没有意义。
我试过了:
所以我想做的是创建一个segue,它打破了UINavigationController堆栈上的Views链。在故事板中有没有正确的方法呢?
- 编辑 -
也许我应该做的是替换根视图(Set root view for UINavigationController)。这可能有用,但似乎是编程工作,应该可以在故事板中完成。或者也许只是我没有采用" iOS方式做事和#34;。
答案 0 :(得分:2)
在视频控制器出现在屏幕上之前,您必须使用setNavigationBarHidden
,例如viewWillAppear
。
但是你不能从“MainScene”回到“RootController”。因此,您应该在“SuccessfulLogin”之后执行popToRootViewController
之类的操作,然后弹出“MainScene”。
答案 1 :(得分:1)
我认为通常最好将主场景作为根视图控制器。从它的viewDidAppear方法,你可以模态地呈现你的ChooseLoginMethod控制器,并从那里进行模态转换到你的其他登录控制器。当你到达最后,并且想要回到主场景时,只需从根视图控制器中删除模态 - 这将取消第一个模式,以及从中呈现的任何模式:
[self.view.window.rootViewController dismissViewControllerAnimated:YES completion:nil];