当我点击iPhone中的导航栏时,如何弹出所需的视图控制器

iOS*_*dev 1 iphone push objective-c uitableview uinavigationcontroller

在我的应用程序中我有6个不同的视图控制器 1.主页2.表视图3.表视图元素的详细信息,这也是一个包含4行的表视图4. 4,5,6编辑/修改视图的详细信息(详细信息表中的每一行都可以修改和重新加载)

在4,5,6视图中编辑详细信息视图的数据时,导航将被推送到第2视图详细信息视图.

当我点击后面的导航细节时,它会弹出到最近修改的上一个视图.但是我需要弹出(推到左/后侧而不是推到右侧)到tableview1,所以我为这个按钮创建了一个leftnavigation项目实现的动作.

UIBarButtonItem *backButton = [[[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStyleBordered target:self action:@selector(backclick:)] autorelease];
    self.navigationItem.leftBarButtonItem = backButton;
Run Code Online (Sandbox Code Playgroud)

在click acitio中,我使用了三种不同的方法

1.popToRootViewcontroller : it takes back to the home page. so ,didn't need it (X)
2.[self.navigationController pushViewController:abc animated:YES]; it pushes right/front (X)
3.present model view controller
Run Code Online (Sandbox Code Playgroud)

一切正在工作,并采取到表视图,但没有在正确的方向,即不弹出到后面只是pusshes到前面.所以,我使用了popto viewcontoller.

4.popViewController(这是我猜的正确的过程)但它崩溃并显示错误视图soesnot exixst

-(IBAction)backclick:(id)sender
{
    ChronologyViewController *temp = [[ChronologyViewController alloc]initWithNibName:@"ChronologyViewController" bundle:nil];
        [self.navigationController popToViewController:temp animated:YES];
}
Run Code Online (Sandbox Code Playgroud)

Ank*_*ava 9

for (UIViewController *vc in [self.navigationController viewControllers]) {
    if ([vc isMemberOfClass:[yourViewController class]]) {
        NSLog(@"Inside if");
        [self.navigationController popToViewController:vc animated:YES];
        return;
    }
}
Run Code Online (Sandbox Code Playgroud)