2016-05-11 9 views
0

Я добавляю кнопку «Готово» в код в панель навигации для подкласса UIViewController только для iPad, точнее для обычного размера класса с нижеследующим код. Мы поддерживаем iOS 8+. Оператор if возвращает класс Compact Size при запуске на iPad Air 2 с iOS 8.1, и он правильно сообщает Regular для iOS 8.4 или iOS 9. Является ли это ошибкой в ​​iOS или я что-то не так?traitCollection.horizontalSizeClass reports Compact on iOS 8.1, Regular на iOS 8.4 и 9.x

/// Add 'Done' button for iPad/Regular Size Class 
private func addDoneButtonIfNeeded() { 
    if traitCollection.horizontalSizeClass == .Regular { 
     let doneButton = UIBarButtonItem(barButtonSystemItem: .Done, target: self, action: #selector(ApprovalDetailViewController.doneAction)) 
     doneButton.tintColor = UIColor.whiteColor() 
     navigationItem.leftBarButtonItem = doneButton 
    } 
} 

выход lldb когда точка останова устанавливается на утверждение, если

iOS 8.1: po traitCollection.horizontalSizeClass.rawValue -> 1 
iOS 8.4: po traitCollection.horizontalSizeClass.rawValue -> 2 

Я использую Лист модального представления на «IPad».

ответ

1

Я решил это, регулируя состояние так:

presentingViewController?.traitCollection.horizontalSizeClass == .Regular 

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

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