添加UIBarButtonItem数组会导致错误

时间:2015-03-10 15:46:26

标签: ios objective-c xcode uinavigationcontroller uibarbuttonitem

  

由于未捕获的异常而终止应用   ' NSInvalidArgumentException',原因:' - [__ NSArrayI isSystemItem]:   无法识别的选择器发送到实例0x7fa5bbd726f0'

我跟随他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;

2 个答案:

答案 0 :(得分:2)

将最后一行更改为rightBarButtonItems。注意最后的s。

答案 1 :(得分:1)

self.navigationItem.rightBarButtonItem是一个ButtonItem,您正在向它传递NSArray,这是无效调用。要传递NavigationBarButtons,您需要调用正确的函数。如果你调用它,我想你会收到不兼容指针类型的警告。只需将您的代码更改为:

self.navigationItem.rightBarButtonItems = arrNavigationButtons;