带有选项卡式导航的 Cocoa-Touch 后退按钮

Posted

技术标签:

【中文标题】带有选项卡式导航的 Cocoa-Touch 后退按钮【英文标题】:Cocoa-Touch Back Button with Tabbed Navigation 【发布时间】:2013-07-12 13:53:10 【问题描述】:

我正在开发一个 ios 应用程序,它使用包含选项卡的左侧滑出抽屉,每个选项卡代表应用程序的一个主要视图。目前,当用户选择一个选项卡时,应用程序会在导航堆栈中搜索相关视图控制器的实例,如果找到一个则弹出回该控制器,否则它会创建一个新实例并将其推送到堆栈上。

我还想添加一个后退按钮,允许用户返回上一个视图,但是由于许多导航选项会将用户弹出到上一个视图控制器,导致他们离开的控制器被释放没有明显的方法可以让后退按钮再次返回该控制器。

有没有什么方法可以构建这个应用程序,以便添加一个后退按钮,同时仍然允许用户在给定时间使用选项卡导航到任何视图?

导航代码示例如下(当用户单击其中一个选项卡时调用):

if(![self.navigation.topViewController isKindOfClass:[GraphViewController class]])  //Are we already in this view?
    BOOL foundController = NO;
    for(id controller in self.navigation.viewControllers)  //Is there a controller of this type already in the stack?
        if([controller isKindOfClass:[GraphViewController class]]) 
            [self.navigation popToViewController:controller animated:YES];
            foundController = YES;
            break;
        
    
    if(!foundController) 
        GraphViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"graphViewController"];
        controller.connection = _connection;
        controller.data = _dataCache;
        [self.navigation pushViewController:controller animated:YES];
    

【问题讨论】:

【参考方案1】:

我相信您想要的是滑出菜单中每个项目的导航控制器。这样,当用户从侧面菜单中选择视图时,他们可以导航与该部分关联的视图。这将允许用户在从侧面菜单中选择项目后从视图返回。

【讨论】:

问题是每个侧边菜单项都链接到应用程序中的一个特定视图,并且有多种方法可以从一个视图到视图本身的其他视图。 IE。 Tab 1 链接到 A,Tab 2 链接到 B,A 链接到 B,A 和 B 链接到 C。每个选项卡不对应于一个离散的部分。 有趣,是的,那这行不通。希望其他人可以加入。

以上是关于带有选项卡式导航的 Cocoa-Touch 后退按钮的主要内容,如果未能解决你的问题,请参考以下文章

导航控制器中的 UIViewController 缺少返回按钮

如何从父 shell 选项卡式页面导航到 shell 选项卡式页面

使用后退按钮在选项卡之间导航

如何在 uiviewcontroller 的导航栏中添加后退按钮?

APP设计中的选项卡式(tab)导航

反应原生屏幕之间的选项卡式导航