2016-06-03 13 views
0

Я хочу поддерживать макет, подобный Safari, где в горизонтально-обычных средах кнопки отображаются на панели навигации, но в горизонтально компактных средах некоторые кнопки находятся на панели навигации, а некоторые кнопки на панели инструментов.Реорганизация панели инструментов и NavigationBar после TraitCollectionDidChange

Это то, что у меня в traitCollectionDidChange

override func traitCollectionDidChange(previousTraitCollection: UITraitCollection?) { 

    let editingContextButton = editing ? resetButton : doneButton 

    if traitCollection.horizontalSizeClass == .Regular { 
     navigationController?.toolbarHidden = true 

     navigationItem.leftBarButtonItems = [editButtonItem(), helpButton] 
     navigationItem.rightBarButtonItems = [editingContextButton, addButton] 

    } else if traitCollection.horizontalSizeClass == .Compact{ 
     navigationController?. toolbarHidden = false 

     navigationItem.leftBarButtonItems = [editButtonItem()] 
     navigationItem.rightBarButtonItems = [editingContextButton] 
     navigationController?.toolbarItems = [helpButton, UIBarButtonItem(barButtonSystemItem: .FlexibleSpace, target: nil, action: nil), addButton] 
    } 
} 

Но, кажется, есть проблема при переходе от обычного горизонтального размерного класса с компактным. Элементы на панели навигации всегда правильны, но элементы панели инструментов обрезаны или пусты.

При представлении ViewController он всегда настроен и отображается правильно, и он всегда прав в горизонтально регулярном классе размеров - возникает проблема, когда класс размера изменяется с обычного на компактный.

Вот пример, показывающий кнопку добавления в правом нижнем углу, исчезающую с панели инструментов после изменения класса размера.

enter image description here

То же самое происходит при повороте устройства на 5,5" айфонов, и портрет на IPad, панель просто пустой после активации многозадачности. Что здесь проблема? Спасибо!

ответ

0

я понял, . что я не устанавливая элементы панели инструментов правильно Вместо

navigationController?.toolbarItems = [helpButton, UIBarButtonItem(barButtonSystemItem: .FlexibleSpace, target: nil, action: nil), addButton] 

Я должен был сделать:

setToolbarItems([helpButton, UIBarButtonItem(barButtonSystemItem: .FlexibleSpace, target: nil, action: nil), addButton], animated: false) 

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

  • Нет связанных вопросов^_^