在我的项目中,我在导航控制器中添加了一些视图控制器,如。
UIViewController1,UIViewController2,UIViewController3,UIViewController4,UIViewController5考虑UIViewController1是我的导航控制器的根视图控制器。在导航到UIViewContoller5的按钮单击后,我需要返回到我的UIViewController1。所以我在写代码。
- (void)popToRootViewControllerAnimated
{
NSLog(@"%@",[self.navigationController viewControllers]);
[self.navigationController popToRootViewControllerAnimated:NO];
}在控制台中,它打印如下
(
"<UIViewController1: 0x8e3fcc0>",
"<UIViewController2: 0x9a5d310>",
"<UIViewController3: 0x9a67b00>",
"<UIViewController4: 0x9162a00>",
"<UIViewController5: 0x9a84380>"
)但是,在它完成执行后,我的视图将停留在UIViewController3上。如果我在我的[self.navigationController viewControllers]中打印UIViewController3,它会显示,
(
"<UIViewController1: 0x8e3fcc0>",
"<UIViewController3: 0x9a67b00>",
)我错过了什么。提前谢谢。任何帮助都将不胜感激。
发布于 2014-03-18 07:35:27
试试这个:
UIViewController *firstVc = [viewControllers objectAtIndex:0];
[navCtrl setViewControllers:@[firstVc] animated:NO];发布于 2014-02-19 12:03:53
试一试,希望这能解决你的问题。
[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:0] animated:YES];这个控制器把你带到所有控制器的0(0)索引处。试试这个
UIViewController *ctrl = [self.navigationController.viewControllers objectAtIndex:self.navigationController.viewControllers.count -1];
[self.navigationController popToViewController:ctrl animated:YES];希望这能解决你的问题。
发布于 2014-02-19 12:05:03
你试过这个吗。
-(void)backButtonAction
{
YourAppDelegate *app=(YourAppDelegate *)[[UIApplication sharedApplication]delegate];
for(UIViewController *vc in app.yourNavigationController.viewControllers)
{
if([vc isKindOfClass:[UIViewController1 class]])
{
[app.yourNavigationController popToViewController:vc animated:YES];
}
}
}https://stackoverflow.com/questions/21878527
复制相似问题