Я использую tabBarController с несколькими UINavigationControllers в моем приложении iPhone, и теперь хочу добавить поддержку для вращения (на некоторых контроллерах представления, а не на всех). Я знаю, что мне нужно реализовать метод supportedInterfaceOrientation для моих UIViewControllers.UINavigationController supportedInterfaceOrientations: category vs swizzle
Когда устройство повернуто, поддерживаемая информация об интерфейсе вызывается в UINavigationController, но мне нужно, чтобы он вызывался на моем viewControllers. Каков наилучший способ сделать это?
Я видел, что некоторые люди создают категорию на UINavigationController, который переопределяет supportedInterfaceOrientation для запроса дочерних viewControllers. Но я знаю, что Apple хмурится тем, что использует Категории для переопределения методов. (Я реализовал его так, и он отлично работает, но я хочу, чтобы приложение продолжало работать с будущей версией iOS.)
Как насчет использования метода swizzling?
Подкласс UINavigationController?
Любые предложения оценены. :)
Несмотря на то, что это даст вам уведомление при изменении ориентации, что он не будет делать это ограничивают вращение устройства в определенные направления, который является то, что ОП попросил о. –
Вы правы. Но мой вариант более гибкий, поэтому он также может быть полезен для автора. Также для подкласса UINavigationController потребуется больше кода для записи, а затем подписки и обработки уведомления. – Avt