0

Я пытаюсь добавить UIButtonTypeDetailDisclosure в нижнюю панель моего представления.Добавление UIButtonTypeDetailDisclosure к панели инструментовItems, вызывающие ошибку времени выполнения

приложение успешно строит, но во время выполнения я получаю ошибку ниже:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIButton view]: unrecognized selector sent to instance 0x17dafa00' 
*** First throw call stack: 
(0x30c1be83 0x3af786c7 0x30c1f7b7 0x30c1e0af... ... 0x3b471ab7) 
libc++abi.dylib: terminating with uncaught exception of type NSException 
(lldb) 

Найти мой код ниже:

self.navigationController.toolbarHidden = NO; 

UIBarButtonItem *space = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; 

UIButton *_appInfoContactButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure]; 

[_appInfoContactButton addTarget:self action:@selector(bottomButtonPressed:) forControlEvents:UIControlEventTouchUpInside]; 

self.toolbarItems = @[space, _appInfoContactButton, space]; 

ответ

2

панели инструментов элементы должны быть экземплярами UIBarButtonItem объектов. Вы пытаетесь добавить экземпляр UIButton.

Решение состоит в том, чтобы обернуть UIButton в UIBarButtonItem.

UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithCustomView:_appInfoContactButton]; 

self.toolbarItems = @[ space, item, space ]; 
+0

@maddy: Большое спасибо! Быстрое и простое решение. Вы сделали свой день с 1 строкой :-) – Armand