2015-01-19 15 views
6

Evrensel film şeridi ile evrensel iPhone/iPad uygulamasında çalışıyorum. Bazı ViewControllers için iPad'de belirli bir düzen varsa boyut sınıfları kullanıyorum.UIPopoverController ile gösterilen UIViewController'ın Yanlış Boyut Sınıfı

iPhone'da moda olarak sunulması gereken bir ViewController var ancak iPad'de UIPopoverController'da gösterilmesi gerekiyor.

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:^{ 
    }]; 
} 

Çok iyi çalışıyor ancak Boyut Sınıflarında sorun var. WRegular/hRegular Size Class'ta storyboard üzerinde bazı değişiklikler yaptım, ancak iPad'de iPhone düzenini gösteren UIPopoverController'da bazı değişiklikler yaptım. Bu, iPad ekranının boyutunun düşük olmasından dolayı. IPad'de popover olarak göstermek ancak iPhone'da görmezden gelmek için Arabirim Oluşturucusu'nu Boyut Sınıflarıyla değiştirebilir miyim?

cevap

0

Popover view denetleyicisindeki setOverrideTraitCollection kullanımı, bir iPad için normal x düzenli olarak kullanmanıza izin vermelidir.

İlgili konular