0

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

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

我需要在编译器标志中添加什么?以及为什么在为模拟器编译时它会起作用。

提前致谢。

4

2 回答 2

3

根据 UITabBarController 的文档:

您永远不应尝试操作存储在此属性中的 UITabBar 对象本身。如果您尝试这样做,选项卡栏视图将引发异常。要为标签栏界面配置项目,您应该将一个或多个自定义视图控制器分配给 viewControllers 属性。标签栏从您指定的视图控制器中收集所需的标签栏项目。

此属性提供的选项卡栏视图仅适用于您希望使用 UIActionSheet 类的 showFromTabBar: 方法显示操作表的情况。

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

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

于 2009-07-17T05:21:51.217 回答
0

自 iPhone OS 3.0 起可访问

于 2010-01-24T05:27:37.443 回答