我是一个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方法/属性。