2011-07-27 42 views
1

我想添加一个UIButton到UITabBar我用下面的代码iPad应用:添加的UIButton到UITabBar

TabBarAppDelegate *delegate = (TabBarAppDelegate *)[[UIApplication sharedApplication] delegate]; 
UITabBarController *tabbar = (UITabBarController *)delegate.window.rootViewController; 

UIButton *b = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 20, 20)]; 
[tabbar.view addSubview:b]; 

tabbar是确定并引用到正确的TabBar项目(比如,我可以切换活动标签代码如下:[tabbar setSelectedIndex:1];)。

此代码由其他一些自定义按钮调用。虽然有日志中没有错误,按键上不使用TabBar :(

表明我在做什么错的,什么是添加的UIButton到UITabBar正确的方式:)下面是一个例子:

http://gyazo.com/99fc0df0ed47dd6be91b558161cab4f9.png

在此先感谢!

编辑:好吧,如果我坚持使用UIToolbar选项,那么在视图之间切换的正确方法是什么?创建一个ViewContollers的NSArray并将相应的ViewController的视图加载到活动的View?

+0

为什么要添加一个按钮?你想添加一个新标签吗? – Saphrosit

+0

不,我真的需要添加一个自定义的UIButton。这就是我的客户想要的...这个按钮不是TabBarItem,它只是一个tabbar内的按钮:http://gyazo.com/99fc0df0ed47dd6be91b558161cab4f9.png – WASD42

+0

@ WASD42:这看起来像我'UIToolBar'不是'UITabBar ',并且您可以轻松地将按钮添加到前者。 – PengOne

回答

4

您不能直接将UIButton添加到UITabBarController。从UITabBarController Class Reference

您不应该直接访问标签栏控制器 的标签栏视图。

此外沿,文档读取:

标签栏项通过它们的相应的视图 控制器,被配置。要将标签栏项目与视图控制器相关联,请创建 UITabBarItem类的新实例,为视图控制器适当地配置它 ,并将其分配给视图控制器的 tabBarItem属性。如果您没有为您的视图控制器提供 的自定义选项卡栏项目,则视图控制器会创建一个默认项目 ,其中不包含图像以及视图控制器标题 属性中的文本。

因此你有两个选项:

  1. 创建UITabBarItemdocumentation),并补充说。
  2. 改为使用UIToolBar,但请记得添加UIBarButtonItem s。
+0

嗯,我确实需要一个带有按钮的UITabBar。如果标准元素无法实现,那么我需要创建自己的实现:/这并不好玩...... – WASD42

+0

您应该**不**子类'UITabBar'。你为什么需要一个按钮?您可以设置按钮的操作,以便在选择该选项卡时触发。 – PengOne

+0

当用户点击按钮时,我需要打开弹出窗口,这不是我想要的 - 这就是我的客户想要的:/您说可以在点击该选项卡项目时调用操作...我可以以某种方式禁用本地那么Tabitem行为(我是指切换视图)? – WASD42

1

虽然OP已决定使用UIToolBar来解决这个问题,但我想我会发布一个快速响应,为任何阅读本文的人提供另一种选择。基本上,你可以做到这一点,但你必须做的是继承UITabBarController,并创建你的UIButton并将它们添加到子类中。无论如何,这里有一些提供细节的链接。

Here and Here

0

万一有人绊倒这个老问题:你可能想看看的UITabBarUITabBarControllerUITabBarDelegateUITabBarControllerDelegate)各自的代表。