Iphone 如何获取导航栏返回按钮以返回到其他视图控制器
如何让UINavigation控制器导航到之前的视图而不是之前的视图。基本上,我希望它能跳回2个位置,而不是默认的位置 我敢肯定这是非传统的,但我现在只需要这么做Iphone 如何获取导航栏返回按钮以返回到其他视图控制器,iphone,objective-c,ios,uinavigationcontroller,Iphone,Objective C,Ios,Uinavigationcontroller,如何让UINavigation控制器导航到之前的视图而不是之前的视图。基本上,我希望它能跳回2个位置,而不是默认的位置 我敢肯定这是非传统的,但我现在只需要这么做 self.navigationItem.backBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStyleBordered
self.navigationItem.backBarButtonItem =
[[[UIBarButtonItem alloc] initWithTitle:@"Back"
style:UIBarButtonItemStyleBordered
target:nil
action:nil] autorelease];
谢谢您的帮助。将目标添加到您添加的按钮 然后使用以下代码返回多个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];
向添加的按钮添加目标 然后使用以下代码返回多个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];
设置:
然后创建一个方法-goBack
-(void)goBack
{
UIViewController *ctrl = [self.navigationController.viewControllers objectAtIndex:self.navigationController.viewControllers.count - 2];
[self.navigationController popToViewController:ctrl animated:YES];
}
设置:
然后创建一个方法-goBack
-(void)goBack
{
UIViewController *ctrl = [self.navigationController.viewControllers objectAtIndex:self.navigationController.viewControllers.count - 2];
[self.navigationController popToViewController:ctrl animated:YES];
}
如果不想依赖数组的索引,则可以执行以下操作:
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];
MyController*aMyController=nil;
对于(int i=0;i如果您不想依赖数组的索引,则可以执行以下操作:
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];
MyController*aMyController=nil;
对于(int i=0;i,如果您在NavigationController中有三个视图控制器,并且当前正在查看第三个视图控制器,并且如果您想跳转到第一个视图控制器
试试这个。这将引导你返回两次
[self.navigationController popToViewController:[[self.navigationController viewControllers] objectAtIndex:0] animated:YES];
在您的情况下,设置适当的值而不是0。如果您在NavigationController中有三个视图控制器,并且当前正在查看第三个视图控制器,并且如果您想跳转到第一个视图控制器
试试这个。这将引导你返回两次
[self.navigationController popToViewController:[[self.navigationController viewControllers] objectAtIndex:0] animated:YES];
在您的情况下,设置适当的值而不是0。谢谢!如果我想指定一个特定的视图控制器,该怎么办?不中断导航流是否可能?谢谢!如果我想指定一个特定的视图控制器,该怎么办?不中断导航流是否可能?