【发布时间】:2009-02-11 11:33:50
【问题描述】:
我有一个带有两个视图的 NavigationBar 应用程序:父视图和子视图。在子视图中,我在右上角添加了一个按钮,如下所示:
- (void)viewDidLoad {
UIBarButtonItem *tempButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"lock-unlocked.png"] style:UIBarButtonItemStylePlain target:self action:@selector(lockScreen)];
self.navigationItem.rightBarButtonItem = tempButton;
[tempButton release];
}
单击该按钮时,我想更改此 rightBarButtonItem 的图像并禁用 leftBarButtonItem(由控制器自动添加)。一个按钮基本上有两种状态,锁定和解锁。
问题 1: 我能找到如何更改图像的唯一方法是使用新图像创建一个新的 UIButtonItem 并将 rightBarButtonItem 替换为该新图像。但我想知道是否有办法只更改图像而不创建新的 UIBarButtonItem。如果我继续创建新的 UIBarButtonItem,是否会造成内存泄漏?
问题 2: 如何获取 self.navigationItem.leftBarButtonItem 并禁用/启用它?我不是手动创建的,它是由控制器自动为我创建的。我在 UIBarButtonItem 上没有看到任何方法/属性来启用/禁用用户与之交互。
【问题讨论】:
标签: iphone cocoa-touch