以编程方式添加UIBarButtonItem的正确方法是什么?在我的情况下,我正在尝试向rightBarButtonItem
添加一个,我一直在控制器层次结构中跳跃,但我似乎无法让按钮显示在任何地方。
这是我目前的代码:
- (void)viewDidLoad {
[super viewDidLoad];
[self.navigationItem setRightBarButtonItem:[[[UIBarButtonItem alloc] initWithImage:[[UIImage alloc] initWithContentsOfFile:@"Barcode-White.png"] style:UIBarButtonItemStylePlain target:self action:@selector(scanEquipment:)] autorelease]];
}
我希望有人能引导我走向正确的方向。我试图从中调用它的控制器是3级。所以,UITabBarController
- > UIViewController (Settings, 1st level)
- > UIViewController (Vehicle, 2nd level)
- > UIViewController (Inventory, 3rd level)
。
无论如何,提前感谢您的帮助!
答案 0 :(得分:1)
[[UIImage alloc] initWithContentsOfFile:@"Barcode-White.png"]
可能无效。 initWithContentsOfFile获取图像文件的完整路径,而不仅仅是文件名。那可能是个问题;它返回nil,导致整个按钮构造函数返回nil。
(另外,你通过在没有发布或自动释放的情况下调用init方法来泄漏这个图像。)
尝试使用[UIImage imageNamed:@"Barcode-White"]
,它会在应用资源中查找图像文件,并且只需加载图像一次,然后将其缓存在内存中,无论它被调用多少次,都会有额外的好处:
除此之外,它看起来应该有用......
此外,导航栏项的样式始终为UIBarButtonItemStyleBordered
。尝试将其设置为UIBarButtonItemStylePlain
将被系统忽略。 (但不应该是它不起作用的原因。)