iphone - 当有人隐藏/显示选项卡栏时是否有任何选项卡栏事件用于通知?

标签 iphone events hide show tabbar

我在我创建的选项卡栏 Controller 的自定义子类中有一个导航 Controller 。

每当显示的 Controller 之一尝试隐藏或显示选项卡栏时,我想从(自定义)选项卡栏内了解情况。 (例如,将具有 hidesBottomBarWhenPushed=YES 的 VC 推送到 Nac Controller 时)。

简而言之,我希望收到隐藏/显示选项卡栏的事件通知,但在 Apple 的引用资料中找不到任何内容。我尝试查看 UITabBar、UITabBarDelegate、UITabBarController 和 UITabBarControllerDelegate,但似乎都只提供与选项卡栏项目相关的功能。

提前致谢。

最佳答案

如果您使用标签栏 Controller ,UIKit 会明确声明将在标签栏 Controller 上下文中显示的每个导航 Controller 实例都将位于其 viewControllers 属性中。现在,每个 UINavigationController 实例都有一个委托(delegate),它定义了一个 navigationController:willShowViewController:animated: 方法,让您知道何时将 View Controller 推送到它上面。

通过将标签栏 Controller 设置为推送到其上的每个导航 Controller 的委托(delegate),您可以分析被推送的 View Controller 是否设置了 hidesBottomBarWhenPushed 属性,并在设置时生成事件案例。

用于隐藏标签栏 Controller 标签栏的算法如下:当将 View Controller 推送到本身包含在标签栏 Controller 中的导航 Controller 时,如果导航 Controller 的导航堆栈中存在任何 View Controller 设置了 hidesBottomBarWhenPushed 属性,则应隐藏选项卡栏。

因此,当选择导航 Controller 并且其堆栈中的 View Controller 之一设置了 hidesBottomBarWhenPushed 属性时,选项卡栏会隐藏。

关于iphone - 当有人隐藏/显示选项卡栏时是否有任何选项卡栏事件用于通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4563299/

相关文章:

iphone - UITextField 具有安全输入功能,在编辑之前始终会被清除

iphone - 从代码确定 Core Data 框架是否存在

jquery 1.8 触发器

Php Yii,如何注册 Controller 引发的事件

jquery - 隐藏 SVG 对象 - jQuery

javascript - 隐藏多重选择框中的选项

iphone - 在 Objective C++ 中管理内存我需要知道什么?

ios - SDWebImage 缓存对象的大小

Jquery 移动 slider 刷新时出现错误

jQuery "hide"函数不起作用