Добавить UIToolbar как ошибку UINavigationItem

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

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

- (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 кнопок, это может иметь значение?

Спасибо!

1 ответ

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

Другие вопросы по тегам