当我在 iPhone 的导航栏上单击返回时,如何弹出到所需的视图控制器

Posted

技术标签:

【中文标题】当我在 iPhone 的导航栏上单击返回时,如何弹出到所需的视图控制器【英文标题】:How can i pop to a required view controller when i click on back on navigation bar in iPhone 【发布时间】:2012-02-17 07:46:29 【问题描述】:

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

当在 4、5、6 视图中编辑详细视图的 hte 数据时,导航被推送到第二视图详细视图。

当我详细点击后退导航时,它会弹出到最近修改的上一个视图。 但我需要弹出(推到左侧/背面但不推到右侧)到 tableview1 所以我为此按钮创建了一个左导航项实现的操作。

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

在 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

一切都在工作并进入表格视图,但方向不正确,即不弹出到后面,只是推到前面。所以,我使用了popto viewcontoller。

4.popViewController(我猜这是正确的过程)但它崩溃并显示错误视图所以不存在

-(IBAction)backclick:(id)sender

    ChronologyViewController *temp = [[ChronologyViewController alloc]initWithNibName:@"ChronologyViewController" bundle:nil];
        [self.navigationController popToViewController:temp animated:YES];

【问题讨论】:

【参考方案1】:
for (UIViewController *vc in [self.navigationController viewControllers]) 
    if ([vc isMemberOfClass:[yourViewController class]]) 
        NSLog(@"Inside if");
        [self.navigationController popToViewController:vc animated:YES];
        return;
    

【讨论】:

以上是关于当我在 iPhone 的导航栏上单击返回时,如何弹出到所需的视图控制器的主要内容,如果未能解决你的问题,请参考以下文章

单击搜索栏上的取消按钮时如何弹出本端视图控制器?

着色 iPhone 导航栏时颜色和按钮会改变行为

分段按钮未显示在 iPhone 的导航栏上

如何在视图控制器中的标签栏和导航栏上全屏显示弹出视图?

在将导航控制器弹出回根视图的选项卡栏上检测到双击

未创建 Android listview 内容视图