如何获得一个uinavigation栏返回button返回到视图控制器

我将如何去有一个UINavigation控制器导航不是以前的观点,而是之前的观点。 基本上我想跳回2个地方而不是默认的地方。

这是非常规的,我敢肯定,但我现在只需要做。

self.navigationItem.backBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStyleBordered target:nil action:nil] autorelease]; 

谢谢你的帮助。

组:

 self.navigationItem.backBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStyleBordered target:self action:@selector(goBack)] autorelease]; 

然后创build一个方法-goBack

 -(void)goBack { UIViewController *ctrl = [self.navigationController.viewControllers objectAtIndex:self.navigationController.viewControllers.count - 2]; [self.navigationController popToViewController:ctrl animated:YES]; } 
 self.navigationItem.backBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStyleBordered target:self action:@selector(youractonEvent:] autorelease]; 

如果你不想依赖数组的索引,那么你可以做一些事情如下:

 MyController * aMyController = nil ; for (int i=0; i<[[self.navigationController viewControllers] count]; i++) { NSLog(@"%@",[[self.navigationController viewControllers] objectAtIndex:i]); if ([[[self.navigationController viewControllers] objectAtIndex:i] isKindOfClass:[MyController class]]) { aMyController = [[self.navigationController viewControllers] objectAtIndex:i]; } } [self.navigationController popToViewController:aMyController animated:YES]; 

如果您在NavigationController中有三个视图控制器,并且您正在查看第三个视图控制器,并且您想要跳转到第一个视图控制器。

尝试这个。 这将导航你两次回来。

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

在你的情况下设置适当的值,而不是0。

将目标添加到您添加的button

然后使用下面的代码返回多个viewController

 //Get the view controller that is 2 step behind UIViewController *controller = [nav.viewControllers objectAtIndex:nav.viewControllers.count - 2]; //Go to that controller [nav popToViewController:controller animated:YES];