2015-01-19 19 views
6

Sto lavorando su un'applicazione universale iPhone/iPad con storyboard universale. Per alcuni ViewController sto usando le classi di dimensioni se hanno un layout specifico su iPad.Wrong Size-Class di UIViewController mostrato con UIPopoverController

Ho un ViewController che deve essere presentato modalmente su iPhone ma su iPad deve essere mostrato in UIPopoverController.

UINavigationController *navigationController = [self.storyboard instantiateViewControllerWithIdentifier:@"ComposeMessageNavigationController"]; 
ComposeMessageViewController *viewController = (ComposeMessageViewController *)navigationController.topViewController; 
//Prepeare my view controlller 
... 

if (IS_IPAD) { 
    UIPopoverController * popover = [[UIPopoverController alloc] initWithContentViewController:navigationController]; 
    CGSize screenSize = [UIScreen mainScreen].bounds.size; 
    CGRect popoverFrame = CGRectMake(screenSize.width/2, screenSize.height/2, 1, 1); 
    [popover presentPopoverFromRect:popoverFrame inView:self.view permittedArrowDirections:0 animated:YES]; 
} else { 
    [self presentViewController:navigationController animated:YES completion:^{ 
    }]; 
} 

Funziona piuttosto bene ma c'è un problema con le classi di dimensioni. Ho apportato alcune modifiche allo storyboard in wRegular/hRegular Size Class ma su iPad in UIPopoverController che mostra ancora il layout di iPhone. È perché la dimensione del popover è inferiore allo schermo dell'iPad. Posso apportare le mie modifiche in Interface Builder con Classi di dimensioni per visualizzarle in popover su iPad ma ignorarle su iPhone?

risposta

0

Utilizzare setOverrideTraitCollection nella visualizzazione popover il controller dovrebbe consentire di utilizzare il regolare x regolare per un iPad.