1

У меня есть UIToolbar, который находится внизу представления. Когда пользователь находится на iPad, я хочу добавить панель инструментов в правую часть навигационного контроллера, потому что будет место.Добавить UIToolbar в качестве ошибки UINavigationItem

Я добавил этот код:

- (void)viewDidLoad{ 
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { 
      UIBarButtonItem *toolBarItem = [[UIBarButtonItem alloc]initWithCustomView:toolBar]; 
      self.navigationItem.rightBarButtonItem = toolBarItem; 
     } 
[super viewDidLoad]; 
    } 

Но сбой приложения с ошибкой:

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Auto Layout still required after executing -layoutSubviews. UINavigationBar's implementation of -layoutSubviews needs to call super.' 

Я не знаю, почему это проблема, потому что я видел этот метод использовался ранее , Кстати, элементы панели инструментов добавляются в конструктор интерфейса, а не с помощью NSArray кнопок, может ли это иметь значение?

Спасибо!

+0

Где вы обычно объявляете UIBarButtonItem? – Dustin

+0

PLZ показать нам коды инструментов и инициализации. –

+0

и у вас есть [super viewDidLoad]; в вашем методе viewDidLoad? –

ответ

0

UIBarButtonItem - это один из элементов управления, который находится внутри панели инструментов. Вы уверены, что делаете? Я не могу следить за тем, что вы говорите, но похоже, что вы пытаетесь добавить панель инструментов в UIBarButtonItem. Это должно быть наоборот, UIbarButtonItem живет внутри UIToolbar

+0

UIToolbar содержит несколько элементов UIBarButtonItems, но я пытаюсь поместить UIToolbar в другой UIBarButtonItem, чтобы добавить его в панель навигации. Я не думал, что есть более простой способ. –

+0

Более простой способ - создать пользовательский элемент управления UIView, который вы можете установить произвольно. То, что вы пытаетесь сделать, это UIToolbar Inception! – Justin

Смежные вопросы