Как: автоповорот на iPad и портрет только на iPhone?

Привет, я только начал программировать для iPhone. Я создал универсальное приложение для iPad и iPhone в Xcode 3.2, и все работает нормально. Но теперь я хочу реализовать в этом приложении следующую функцию:

Он должен поддерживать автоповорот на iPad и быть портретным только на iPhone.

Понятия не имею, как это сделать.

У меня есть файл делегата AppDelegate_iPad, файл делегата AppDelegate_iPhone и контроллер представления на вкладке «Общие», которыми пользуются оба этих делегата.

Любые идеи, как я могу реализовать эту функцию. любая помощь будет оценена.

Спасибо Вик


person Vik    schedule 14.08.2011    source источник


Ответы (2)


В контроллерах представлений для представлений, в которых вы хотите реализовать это поведение вращения, выполните проверку внутри shouldAutorotateToInterfaceOrientation, например:

- (BOOL)shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation) interfaceOrientation {     
    UIDevice* thisDevice = [UIDevice currentDevice];
    if (thisDevice.userInterfaceIdiom == UIUserInterfaceIdiomPad)
    {
        return true;
    }
    else
    {
        return interfaceOrientation == UIDeviceOrientationPortrait;
    }
}
person highlycaffeinated    schedule 14.08.2011

Приложения под управлением iOS 6+ также захотят реализовать ViewController:

- (NSInteger)supportedInterfaceOrientations

и / или AppDelegate's:

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window

E.g.,

- (NSInteger)supportedInterfaceOrientations
{
    if ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad) {
        return UIInterfaceOrientationMaskAll;
    }
    return UIInterfaceOrientationMaskPortrait;
}
person AlexD    schedule 15.07.2013