尝试从导航堆栈中popup视图时断言失败

我试图popup一个特定的视图控制器在导航堆栈,但我做错了,因为我得到这个错误popup时,当我尝试执行代码

Assertion failure in -[UINavigationController popToViewController:transition:], /SourceCache/UIKit_Sim/UIKit-1912.3/UINavigationController.m:2229 

这是导致问题的代码

 FirstViewController *firstViewController = [[FirstViewController alloc] initWithNibName:@"FirstViewController.xib" bundle:nil]; [self.navigationController popToViewController:firstViewController animated:YES]; 

pipe理find一个例子,其中完美的作品。

//只需selectobjectAtIndex数字即可popup到导航堆栈上的特定点

 [self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:1] animated:YES]; 

希望这可以帮助。

您不能popup尚未推送的控制器实例,即使它可能与您希望返回的另一个控制器相同。

在你的代码片段中,你试图将导航控制器的堆栈popup到一个新创build的对象中。 这个控制器不在堆栈上,因为你刚刚创build了它。 由于导航控制器找不到您正在查找的控制器,因此会引发错误。