如何从 UITabBarController 访问 _tabBar 实例

发布于 2024-07-15 05:48:40 字数 380 浏览 3 评论 0原文

我正在尝试从 UITabBarController 访问 _tabBar 实例。 我试图在某些情况下隐藏 tabBar,为此,我向 UITabBarController 添加了一个扩展,我可以在其中访问 _tabBar 实例,并调用 setHidden 消息。 这在为模拟器编译时有效,但是当我为设备编译时,我收到以下错误

“_OBJC_IVAR_$_UITabBarController._tabBar”,引用自: UITabBarController+TabBar.o 中的 _OBJC_IVAR_$_UITabBarController._tabBar$non_lazy_ptr

我需要在编译器标志中添加什么? 以及为什么它在为模拟器编译时有效。

提前致谢。

I am trying to access the _tabBar instance from a UITabBarController. I am trying to hide the tabBar in certain situations, for this, I added an extension to UITabBarController, where I can access the _tabBar instance, and call the setHidden message. This works when compiling for the simulator, but when I compile for the device, I get the following error

"_OBJC_IVAR_$_UITabBarController._tabBar", referenced from:
_OBJC_IVAR_$_UITabBarController._tabBar$non_lazy_ptr in UITabBarController+TabBar.o

What do I need to add to my compiler flags? and why does it works when compiling for the simulator.

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

鱼忆七猫命九 2024-07-22 05:48:40

根据 UITabBarController 的文档:

你永远不应该试图操纵
UITabBar 对象本身存储在
这个性质。 如果你尝试这样做
所以,标签栏视图会抛出一个
例外。 配置项目
你的标签栏界面,你应该
而是分配一个或多个自定义视图
控制器到视图控制器
财产。 标签栏收集
视图中所需的选项卡栏项目
您指定的控制器。

这个提供的标签栏视图
财产仅适用于以下情况
您想要显示操作表
使用 showFromTabBar: 方法
UIActionSheet 类。

如果您将 UITAbBarController 推送到导航控制器堆栈上,您可以将 hidesBottomBarWhenPushed 属性设置为 YES,这样就可以了。

UITAbBarController 的超类中可能还有另一个 API 可以执行此操作。 如果没有,您可以遍历子视图层次结构并隐藏必要的层次结构。

According to The Docs for UITabBarController:

You should never attempt to manipulate
the UITabBar object itself stored in
this property. If you attempt to do
so, the tab bar view throws an
exception. To configure the items for
your tab bar interface, you should
instead assign one or more custom view
controllers to the viewControllers
property. The tab bar collects the
needed tab bar items from the view
controllers you specify.

The tab bar view provided by this
property is only for situations where
you want to display an action sheet
using the showFromTabBar: method of
the UIActionSheet class.

If you are pushing your UITAbBarController onto a navigation controller stack you can set the hidesBottomBarWhenPushed property to YES, and that will work.

There might also be another API in UITAbBarController's superclass that will do this. If not you could walk through the subview hierarchy and hide the necessary one.

夜空下最亮的亮点 2024-07-22 05:48:40

从 iPhone OS 3.0 开始就可以使用

It is accessible since iPhone OS 3.0

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文