Mam aplikację w sklepie z aplikacjami, w której używam analityki Flurry. Od czasu do czasu otrzymuję od czasu do czasu nieobsługiwany błąd wyjątku, którego nie mogę zrozumieć.Nierozpoznany selektor wysłany na UIBarButtonItem setTintColor
NSInvalidArgumentException: - [UIBarButtonItem setTintColor:]: nierozpoznany selektor wysyłane do instancji 0x177b20 błędzie: aplikacja zawieszała
Czego nie można dowiedzieć się w tym, że nie jestem ustawiania żadnych przedmiotów przycisk paska odcień koloru w dowolnym miejscu. Mam kilka niestandardowych widoków, w których ustawiam właściwy przycisk paska, ale bez odcienia.
Większość moich zastosowań przycisku wygląda następująco.
- (void)viewDidLoad
{
[super viewDidLoad];
UINavigationBar *bar = [self.navigationController navigationBar];
[bar setTintColor:[UIColor colorWithRed:0 green:69.0/255 blue:118.0/255 alpha:1]];
self.navigationItem.title = @"Edit User";
UIBarButtonItem *saveButton = [[UIBarButtonItem alloc]
initWithTitle:@"Save"
style:UIBarButtonItemStylePlain
target:self
action:@selector(editUser:)];
self.navigationItem.rightBarButtonItem = saveButton;
[saveButton release];
UIBarButtonItem *cancelButton = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemCancel
target:self
action:@selector(cancel)];
[[self navigationItem] setLeftBarButtonItem:cancelButton];
[cancelButton release];
}
Jeśli ktokolwiek ma wgląd w tę kwestię, byłbym bardzo wdzięczny. Kieruję na system iOS 4.0 i nowsze w moim projekcie.
AKTUALIZACJA: Wyjaśniałem, co było przyczyną niektórych losowych problemów na setTintColor. Zauważyłem, że ustawiam kolor tinty na jednym z aktualnych elementów przycisku paska. Zgaduję, że istnieją pewne różnice między wersjami systemu operacyjnego, które mogą powodować awarie. Więc jeśli ktoś może powiedzieć mi neutralny sposób ustawiania spersonalizowanego przycisku prawego przycisku paska na moim pasku nawigacyjnym, będzie to docenione.
Ostatnio miałem pewne problemy. Czasami trzeba po prostu wywołać setTintColor na podstronach NavigationController. ([[self.navigationController.navigationBar subviews] objectAtIndex: 1] setTintColor: [UIColor redColor]];) Przynajmniej to naprawiło to dla mnie. – CodaFi