从AppDelegate将UIBarButtonItem添加到UITabBarController中包含的UINavigationController

时间:2015-01-16 11:32:44

标签: objective-c ios7 uinavigationcontroller uitabbarcontroller

编辑:解决方案:将按钮添加到UIViewControllers,将no添加到UINavigationControllers

我的应用程序的根视图控制器是一个uitabbarcontroller,它包含一个由5个导航控制器组成的数组,全部在app delegate中初始化。 一切正常,但我只有一个问题:我不能在应用程序委托中的tabbarcontroller中包含的控制器的导航栏中添加任何按钮。我可以设置导航栏的标题,导航栏的背景等,但是当我在导航栏中添加一个按钮时,我没有错误但是按钮没有显示。

有人知道原因吗?禁止这样做吗?

精确1:我使用.xib文件进行视图,我不使用任何故事板。

精确2:这是我用来为每个控制器创建按钮的代码:

UIBarButtonItem *myBarBtn = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"icon-chrono"] style:UIBarButtonItemStylePlain target:nil action:nil];

[ret.navigationItem setRightBarButtonItem:myBarBtn animated:YES];

精确度3:当我在每个导航控制器viewDidLoad方法中复制此代码时,它可以正常工作

编辑:这不是图像的问题,当我使用initWithTitle方法创建UIBarButtonItem时问题是一样的

2 个答案:

答案 0 :(得分:0)

在图片名称后面添加 .png .jpg 可能会对您有帮助。

像这样。

 UIBarButtonItem *myBarBtn = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"icon-chrono.png"] style:UIBarButtonItemStylePlain target:nil action:nil];

    [ret.navigationItem setRightBarButtonItem:myBarBtn animated:YES];

点击您的项目 - >构建阶段 - >复制捆绑包资源,并在那里查看您的图像是否存在。如果没有,则使用" +" 按钮添加它。见下图。 enter image description here

答案 1 :(得分:0)

好的,我刚发现问题......

我的UITabController包含一个包含5个UINavigationController的数组,每个UINavigationController都包含一个UIViewController作为根视图控制器。 我尝试在UINavigationControllers而不是UIViewControllers上添加按钮...如果我直接在UIViewControllers中添加按钮它就可以了!