У меня есть приложение в магазине приложений, в котором я использую аналитику Flurry. И время от времени я получаю ошибку необработанного исключения, которую не могу понять.
NSInvalidArgumentException: -[UIBarButtonItem setTintColor:]: unrecognized selector sent to instance 0x177b20 Msg: Application crashed
Что я не могу понять, так это то, что я нигде не устанавливаю цвет оттенка элементов кнопок панели. У меня есть несколько пользовательских представлений, где я устанавливаю правый элемент кнопки панели, но не устанавливаю оттенок.
Большинство моих вариантов использования кнопки выглядят следующим образом.
- (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];
}
Если у кого-нибудь есть какие-либо соображения по этому вопросу, я буду очень благодарен. В своем проекте я ориентируюсь на iOS 4.0 и выше.
UPDATE: Я выяснил причину некоторых случайных проблем с setTintColor. Я обнаружил, что устанавливаю цвет оттенка на одном из элементов кнопки панели. Я предполагаю, что есть некоторые различия между версиями ОС, которые могут вызывать сбои. Поэтому, если кто-нибудь может подсказать мне нейтральный для ОС способ установки пользовательского элемента правой кнопки панели навигации, буду признателен.