0

согласующим приложение из-за неперехваченного исключением 'NSInvalidArgumentException', причина: '- [__ NSArrayI isSystemItem]: непризнанная селектор отправляется например 0x7fa5bbd726f0'Добавление массива UIBarButtonItem что приведет к ошибке

у меня последовали за его solution here, и, видимо, я не делаю недостатков. Я делаю это - добавление двух кнопок (кнопок на панели) в правой части панели навигации.

 UIBarButtonItem *notificationButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"Notification.png"] 
                        style:UIBarButtonItemStylePlain target:self action:@selector(notificationAction)]; 
     UIBarButtonItem *searchButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"search"] 
                        style:UIBarButtonItemStylePlain target:self action:@selector(searchAction)]; 
     NSArray *arrNavigationButtons = [NSArray arrayWithObjects:notificationButtonItem,searchButtonItem, nil]; 
// warning here - Incompatible pointer type. 
     self.navigationItem.rightBarButtonItem = arrNavigationButtons; 
+0

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

+0

@ DuncanC. Это была глупая ошибка. В следующий раз я буду лучше. спасибо. –

ответ

2

Изменить последнюю строку на rightBarButtonItems. Обратите внимание на s в конце.

1

self.navigationItem.rightBarButtonItem - это единственный ButtonItem, и вы передаете ему NSArray, что является недействительным. Чтобы перейти на NavigationBarButtons, вам нужно вызвать функцию справа. Я думаю, вы получите предупреждение о несовместимом типе указателя, если вы это назовете. Просто измените свой код на:

self.navigationItem.rightBarButtonItems = arrNavigationButtons;