Ios 从RootViewController跳转到NavigationController

Ios 从RootViewController跳转到NavigationController,ios,ios7,navigationcontroller,Ios,Ios7,Navigationcontroller,我的应用程序以我的StartViewController=UITableViewController的UINavigationController开始。 它有一个设置按钮,可按下UINavigationController进行设置ViewController=UITableViewController。在其中,用户必须填写一些凭证,这些凭证是进一步使用应用程序所必需的。 有关概述,请参见图 我想检查凭据是否已填写且正确,如果未填写,则直接转到SettingsViewController 我该怎么

我的应用程序以我的StartViewController=UITableViewController的UINavigationController开始。 它有一个设置按钮,可按下UINavigationController进行设置ViewController=UITableViewController。在其中,用户必须填写一些凭证,这些凭证是进一步使用应用程序所必需的。 有关概述,请参见图

我想检查凭据是否已填写且正确,如果未填写,则直接转到SettingsViewController

我该怎么做?我尝试了很多方法,但大多数情况下,UINavigationController没有检查直接跳转,因此我无法使用左侧的uinavigationbarbutton返回


你正在推上一个新的UINavigationController和一个新的Backback。卸下第二个UINavigationController,然后直接转到设置视图控制器


需要执行此操作的原因是,UINavigationController管理ViewController的后台。你可以随意推搡。但是,当您将另一个UINavigationController推到堆栈上时,它会超过上一个,从而无法直接弹出到第一个导航控制器。

您可以执行如下操作:如果…凭据不正常…{[self.navigationController pushViewController:SettingsViewController动画:是];返回;}内置StartViewController的viewDidLoad方法。
如果我理解了你的问题,我希望这能有所帮助。

嗨。谢谢你的回答。我打了几个电话。e、 g.:settVC=[[AMMSettingsViewController alloc]init];[self.navigationController-popToViewController:settVC-animated:YES];但我总是犯错误。你也能给我一个代码示例吗!我想既然你查了我的答案,你就明白了?顺便说一句,你的评论有一个问题-你不能随意弹出到与你想要的控制器类型相同的控制器。要弹出到的实例必须已在导航堆栈上。我希望这能解释为什么你试图创建一个ViewController并弹出到同一类型的不同VC中是行不通的。谢谢powerj1984的评论。这是我的问题。如果我理解正确,我必须将targetVC添加到导航堆栈中,但如何添加?请给我一个代码示例。我想不出一个解决办法。老实说,这听起来和贴出来的问题不一样。我想我的回答回答了你的第一个问题,但这个新问题没有回答。我真的建议发布第二个问题,但基本上如果您的设置ViewController是导航堆栈上的前一个控制器,只需[self.navigationController PopViewControllerInitiated:YES];