2015-06-18 2 views
-2

Я хочу вызвать метод iOS 8 viewWillTransitionToSize:withTransitionCoordinator:, чтобы обрабатывать переход к различным ориентациям устройства, но он, кажется, не называется автоматически. Я ранее обрабатывал изменения ориентации через NSNotifications (то есть orientationChanged:).viewWillTransitionToSize: withTransitionCoordinator: не вызывается автоматически

Я включил NSLogs в рамках метода viewWillTransitionToSize:withTransitionCoordinator:, но они никогда не называли и следующий код не помогло:

-(NSUInteger)supportedInterfaceOrientations{ 
    return UIInterfaceOrientationMaskAll; 
} 

кто-либо другой опыт любые аналогичные проблемы с этим методом?

+0

Это _is_ называется автоматически. Можете ли вы дать более подробную информацию о том, почему вы думаете, что это не так? – matt

+0

Его следует назвать, у вас должна быть ошибка. КСТАТИ. почему бы вам не использовать 'AutoLayout', если вы используете' Storyboards' или 'layoutSubviews', если вы используете представления в коде ..? Таким образом, ваша реализация находится в одном месте, и она с меньшей вероятностью нарушит новые версии iOS. – Vive

+0

Мой журнал здесь доказывает, что он называется: https://github.com/mattneub/Programming-iOS-Book-Examples/blob/master/bk2ch06p258launchIntoRotationEvents/bk2ch06p258launchIntoRotationEvents/ViewController.swift – matt

ответ

0

Проблема решена. У меня был навигационный контроллер, который имел следующий метод:

- (UIInterfaceOrientationMask)supportedInterfaceOrientations { 
    return UIInterfaceOrientationMaskPortrait; 
} 

Переход к UIInterfaceOrientationMaskAll исправили проблему.

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