将UIButton添加到UITabBar

时间:2011-07-27 21:32:54

标签: iphone uibutton uitabbarcontroller 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];)。

此代码由其他一些自定义按钮调用。虽然日志中没有错误,但按钮不会显示在标签栏上:(

我做错了什么以及将UIButton添加到UITabBar的正确方法是什么? :)这是一个例子:

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

提前致谢!

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

2 个答案:

答案 0 :(得分:4)

您无法直接向UIButton添加UITabBarController。来自UITabBarController Class Reference

  

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

此外,文件内容如下:

  

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

因此,您有两个选择:

  1. 创建UITabBarItemdocumentation)并添加。
  2. 请改用UIToolBar,但请记住添加UIBarButtonItem s。

答案 1 :(得分:1)

虽然OP已决定使用UIToolBar来解决这个问题,但我想我会发布一个快速回复,建议其他任何人阅读此选项。基本上,您可以这样做,但您需要做的是将UITabBarController子类化,并创建您的UIButton并将它们添加到子类中。无论如何,这里有几个提供细节的链接。

Here and Here

相关问题