Вопрос по ios6, ios5, iphone, ios4, ios – Поддержка iOS 4.3 до iOS 6.0

1

У меня уже есть базовый код, который поддерживает ios 4.3 - ios 5. Теперь я также хотел бы поддержать ios 6.0. Настоящий базовый код имеетmodal views, жесткоCGRect'sи вращение отличается для каждого вида. Поэтому я хотел бы знать, можем ли мы поддерживать ios 4.3 - ios 6.0 с тем же базовым кодом, просто внося некоторые изменения, или нам нужно создать полностью новую цель?

Как мы не можем использовать автоматическое расположение ios 6.0, если я хочу поддерживать предыдущие версии, так как это приведет к сбою.

Вы можете посмотреть наthis question Janak Nirmal

Ваш Ответ

3   ответа
4

мы можем сделать это, настроив Цель развертывания на iOS 4.3. Но тогда зачем вам поддерживать iOS & lt; 5.0, поскольку около 85-90% устройств работают на iOS 5.0+. Увидетьэтот

Кроме того, когда вы настраиваете поддержку iOS 4.3 или даже iOS 5.1.1, вам придется обрабатывать несколько вещей. Например, метод для ориентации,

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation

не вызывается для iOS 6. Его заменяют методы,

- (NSUInteger)supportedInterfaceOrientations

- (BOOL)shouldAutorotate

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

Все наоборот: supportInterfaceOrientations для iOS6, два других - для iOS6.
эй, добавляя к этому, так что метод- (NSUInteger)supportedInterfaceOrientations & - (BOOL)shouldAutorotate  будет хорошо работать в IOS 4.3? footyapps27
да, они не будут вызываться в версиях & lt; iOS 6. так что вам придется написать оба. - (BOOL) shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation) interfaceOrientation для версий & lt; iOS 6 и - (NSUInteger) поддерживаются InterfaceOrientations - (BOOL) должны быть доступны для iOS 6
да, так это хорошая идея, чтобы настроить существующую цель и сделать ее совместимой со всеми версиями? или вообще создать новую цель для ios 6.0? footyapps27
Вы должны рассмотреть возможность создания одного приложения, совместимого со всеми версиями iOS. В конце концов, вы не собираетесь загружать отдельное приложение для каждой версии iOS. Кроме того, каждое приложение, загруженное после выпуска iOS 6, нуждается в поддержке iOS 6, поэтому совместимость с iOS 6 является обязательной.
1

совершенно правильно использовать одну кодовую базу для создания приложений iOS 4.3 - 6.0, но, как всегда, ключом является тестирование на реальных iDevices с заданными версиями операционной системы.

Как вы справляетесь с ошибками в оставшихся циклах разработки? Вы найдете место, где вы попали в кирпичную стену, и шаг за шагом найдете путь к ней. И вы, вероятно, увидите, что исправление одной ошибки устраняет множество других, связанных с той же проблемой. Но, опять же, нет ничего лучше, чем тестирование на настоящих iPhone, iPad и iPod Touch. Я нашел трудный путь ...
точно, поэтому я тестирую приложение в симуляторе 5.0, оно работает нормально, но для симулятора 6.0 я получаю так много ошибок. Каков наилучший способ справиться с этим? footyapps27
1

это прекрасно и может быть сделано для поддержки ios 4.3 - ios 6.0 с использованием xcode 4.5.

А для ориентации в ios 6 нужно немного поработать, например, поместить код по-другому, как написано в@Mayur J's answer.

Или все, что вы можете сделать, это просто добавить категории для требуемого контроллера, напримерUINavigationController, UIPopoverViewController, UIImagePickerViewControllerи т.д., чтобы вернуть поддерживаемую ориентацию в ios 6.0, как показано ниже

.h файл

#import <UIKit/UIKit.h>

@interface UIPopoverController (UIPopoverController_Orientation)

-(NSUInteger) supportedInterfaceOrientations;

@end

.m файл

#import "UIPopoverController+UIPopoverController_Orientation.h"

@implementation UIPopoverController (UIPopoverController_Orientation)

-(NSUInteger) supportedInterfaceOrientations {
    return UIInterfaceOrientationMaskLandscape;
}
@end

Здесь я используюUIInterfaceOrientationMaskLandscape так как я поддерживаю только альбомную ориентацию, т.е. ограничиваю мое приложение только ландшафтным режимом.

Надеюсь, что это поможет вам.

Удачного кодирования :)

так что этот метод будет хорошо работать и для iOS 4.3? Потому что у нас было-(BOOL)shouldAutorotateToInterfaceOrientation(UIInterfaceOrientation)interfaceOrientation ранее. Так что, если я поставлю вышеупомянутый метод, он позаботится как от iOS 6 до iOS 4.3 footyapps27
да работает хорошо, как мое приложение также отлично работает на IOS 4.3 для IPad

Похожие вопросы