iPhone Objective-C:使用导航控制器单击选项卡时禁用堆栈弹出

Posted

技术标签:

【中文标题】iPhone Objective-C:使用导航控制器单击选项卡时禁用堆栈弹出【英文标题】:iPhone Objective-C: Disable the popping of the stack when clicking the tab with a navigation controller 【发布时间】:2010-07-27 02:33:34 【问题描述】:

假设我有一个带有标签 A 的标签栏控制器。A 有一个导航控制器,它可以让我将新视图推送到堆栈上。现在,如果我点击选项卡栏上的 A,A 的堆栈中的所有元素都会弹出。

有没有很好的方法来禁用它?我有一系列视图,这些视图与导航控制器一起显示,这些视图接受用户输入,不希望所有这些都因手指滑动而丢失。

提前致谢,如果我的问题不清楚,请告诉我。

【问题讨论】:

【参考方案1】:

尝试为您的 UITabBarController 设置一个委托,并实现:

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController

如果选择了相同的视图控制器,则返回 NO。那么导航堆栈不应该改变。

请注意,它只会在您从 ios 3.0 开始的同一个选项卡上调用,但此时我只针对 iOS 3.0+。

【讨论】:

以上是关于iPhone Objective-C:使用导航控制器单击选项卡时禁用堆栈弹出的主要内容,如果未能解决你的问题,请参考以下文章

如何在objective-c iPhone的视图中显示特定尺寸(非全屏)的视图?

Objective-C - 理解视图控制器

使用 Objective-C 进行 USB 编程

iphone导航控制器和表格视图

iPhone导航控制器基本问题

iPhone 从子视图访问导航控制器