Нераспознанный селектор отправлен на UIBarButtonItem setTintColor - PullRequest
6 голосов
/ 17 декабря 2011

У меня есть приложение в магазине приложений, в котором я использую аналитику Flurry.И я продолжаю время от времени получать ошибку необработанного исключения, которую не могу понять.

NSInvalidArgumentException: - [UIBarButtonItem setTintColor:]: нераспознанный селектор, отправленный экземпляру 0x177b20 Сообщение: Приложениесбой

Что я не могу понять, так это то, что я нигде не настраиваю цвет кнопок на панели.У меня есть несколько пользовательских представлений, в которых я устанавливаю элемент кнопки правой панели, но без оттенка.

Большинство моих использований кнопки выглядят так:

- (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 и выше в своем проекте.

ОБНОВЛЕНИЕ: Я выяснил, что вызывало некоторые из случайных проблем в setTintColor.Я обнаружил, что настраивал цвет оттенка для одного из элементов панели кнопок.Я предполагаю, что есть некоторые различия между версиями ОС, которые могут вызвать сбои.Поэтому, если кто-нибудь подскажет мне нейтральный способ установки настраиваемого элемента кнопки правой панели на моей панели навигации, это будет оценено.

Ответы [ 3 ]

7 голосов
/ 22 декабря 2011

Проблема была с ошибочным использованием -setTintColor на 2 классах.-setTintColor не поддерживается на устройствах 4.x, поэтому произойдет сбой, когда старые устройства столкнутся с оттенком.

3 голосов
/ 17 декабря 2011

Вы пробовали:

self.navigationController.navigationBar.tintColor =[UIColor colorWithRed:0 green:69.0/255 blue:118.0/255 alpha:1];

?

1 голос
/ 17 декабря 2011

, если ваша цель - iOS 4.0, вы можете сделать это: В конце своего AppDelegate.m после @end введите следующий код:

@implementation UINavigationBar (UINavigationBarCategory)
- (void)drawRect:(CGRect)rect {
    UIColor *color = [UIColor YOUR_COLOR];
    self.tintColor = color;
        //if you want image for background use this code
    UIImage *img  = [UIImage imageNamed: @"IMAGE_NAME.png"];
    [img drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
}

@end

Надеюсь, эта помощьДля меня это работа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...