2015-05-06 1 views
0

У меня есть UIViewController поддерживает только портретный режим. Но когда я представляю UIActivityViewController, поведение ориентации странно.Кнопка «Больше» UIActivityViewController нарушает настройки ориентации

Когда представлен UIActivityViewController, я могу повернуть устройство на любую ориентацию без поворота обходящего листа. Это верно. Но когда представлен общий листок, и я устанавливаю устройство по горизонтали, затем нажмите кнопку «Дополнительно», страница настроек «Больше» будет горизонтальной. Затем, когда я закончу настройки и вернусь к общему листу, общий лист вместе с моим представлением UIViewController станет горизонтальным. Это нарушает мой макет.

Я пробовал трюк, который прилагает UIActivityViewController в UINavigationController, но это не меняет поведение после нажатия кнопки «больше».

Есть ли способ решить это?

ответ

0

Вы должны сделать еще один uinavigationcontroller и представить uiactivityviewcontroller оттуда. В этом коде _image - это UIImage yo wan to share. BlankViewController - это только просмотрщик пространственных имен, который вы можете создать в IB, вы также можете сделать цвет фона своего представления прозрачным и сделать то, что когда-либо измените внешний вид, который вы хотите сделать.

__weak CurrentViewController *weakSelf = self ; 

UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:@[_image] applicationActivities:nil] ; 
UIViewController  *viewC = [[UIViewController alloc] initWithNibName:@"BlankViewController" bundle:nil] ; 
UINavigationController *navC = [[UINavigationController alloc] initWithRootViewController:viewC] ; 
activityViewController.completionHandler = ^(NSString *activityType, BOOL completed) 
{ 
[weakSelf dismissViewControllerAnimated:NO completion:^{ 
    ; // Your completion handler 
}] ; 
};[self presentViewController:navC animated:NO completion:^{ 
[navC presentViewController:activityViewController animated:YES completion:^{ 
    ; 
}] ; 
}]; 
+0

Привет, я прочитал этот трюк и попытался, прежде чем я спросил. Это не фиксировало ориентацию после нажатия «больше». – acyc

0

Подкласс UIActivityViewController и переопределить supportedInterfaceOrientations разрешить только портрет.