我正在尝试从UITabBarController访问_tabBar实例。我试图在某些情况下隐藏tabBar,为此,我添加了一个UITabBarController的扩展,我可以访问_tabBar实例,并调用setHidden消息。这在编译模拟器时有效,但是当我为设备编译时,我收到以下错误
“_ OBJC_IVAR _ $ _ UITabBarController._tabBar”,引自: UITabBarController中的_OBJC_IVAR _ $ _ UITabBarController._tabBar $ non_lazy_ptr + TabBar.o
我需要在编译器标志中添加什么?为什么在编译模拟器时它可以工作。
提前致谢。
答案 0 :(得分:3)
根据UITabBarController的文档:
你永远不应该试图操纵 UITabBar对象本身存储在 这个性质。如果你试图这样做 所以,标签栏视图会抛出一个 例外。配置项目 你的标签栏界面,你应该 而是分配一个或多个自定义视图 控制器到viewControllers 属性。标签栏收集 视图中需要的标签栏项目 你指定的控制器。
此处提供的标签栏视图 属性仅适用于以下情况 您想要显示一个操作表 使用showFromTabBar:方法 UIActionSheet类。
如果要将UITAbBarController推送到导航控制器堆栈,可以将hidesBottomBarWhenPushed属性设置为YES,这样就可以了。
UITAbBarController的超类中可能还有另一个API可以执行此操作。如果没有,您可以浏览子视图层次结构并隐藏必要的层次结构。
答案 1 :(得分:0)
自iPhone OS 3.0起可以访问