【发布时间】:2015-03-15 00:05:32
【问题描述】:
编辑:解决方案:将按钮添加到 UIViewControllers 而不是 UINavigationControllers
我的应用程序的根视图控制器是一个 uitabbarcontroller,它包含一个由 5 个导航控制器组成的数组,全部在应用程序委托中初始化。 一切正常,但我只有一个问题:我无法在应用程序委托的 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时问题是一样的
【问题讨论】:
-
您确定您的项目包含名为“icon-chrono”的图像吗?我在我的一个项目中尝试了相同的代码,它运行良好。我唯一的猜测是该图像可能不会添加到项目中。
-
您好,感谢您的回复。是的,我确定此图像存在,我会检查两次,当我从控制器的 viewDidLoad 方法执行此代码时,此图像已正确加载。
-
我找到了另一种方法(我创建了一个 UINavigationController 扩展,它创建导航栏按钮并在我的控制器 viewDidLoad 方法中调用它)所以我没有被阻止,但我真的很想了解这里发生了什么。我感谢这是 Xcode 的限制,但如果它对你有用,那就奇怪了。不明白我错在哪里......
标签: objective-c ios7 uinavigationcontroller uitabbarcontroller