devre dışı bırakma: Bir ebeveyn ve bir alt görünümünü. aşağıdaki gibi alt görünümde ben sağ köşesinde bir düğme ekleyerek ediyorum:imajını değiştirmek ve iki bakan bir NavigationBar uygulaması var UIBarButtonItem
o düğme ben denetleyicisi tarafından otomatik olarak eklenmiştir leftBarButtonItem (bu rightBarButtonItem imajını değiştirme ve devre dışı bırakmak istiyor tıklandığında- (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];
}
). Temelde iki düğme bir durumu vardır, kilitlenir ve kilidi açılır.
Soru 1: Görüntünün nasıl değiştirileceğini bulabilmemin tek yolu, yeni bir resme sahip yeni bir UIButtonItem oluşturmak ve bu yeni olan ile rightBarButtonItem öğesini değiştirmek. Sadece yeni UIBarButtonItem oluşturmadan görüntüyü değiştirmek için bir yolu olup olmadığını Ama merak ediyorum. Yeni UIBarButtonItem oluşturmaya devam edersem bellek sızıntısı mı oluyorum?
Soru 2: nasıl self.navigationItem.leftBarButtonItem ve devre dışı bir tutun alabilirsiniz/etkinleştirmek? Onu manuel olarak oluşturmadım, kontrolör tarafından benim için otomatik olarak oluşturuldu. Onunla devre dışı/kullanıcı etkileşimini sağlamak için UIBarButtonItem üzerinde herhangi bir yöntem/özellik görmüyorum.
Bu yaklaşım daha iyi görünüyor. Teşekkürler! –
Üçüncü kod parçası için küçük bir sorun: bir özellik olarak bildirdiğinizde zaten muhafaza edildiği için tempButton'u serbest bırakabilirsiniz. –
aslında iPhoney. çünkü self.tempButton'u çağırmadı, özellik korunmaz. özelliği korumak sadece self.VAR kullanırsanız tetiklenebilir. –