我有UIViewController
仅支持肖像模式。但是当我提出UIActivityViewController
时,方向行为很奇怪。
当出现UIActivityViewController
时,我可以将设备旋转到任何方向,而不会旋转共享表。这是对的。
但是当显示共享表时,我将设备水平放置,然后单击"更多"按钮,"更多"设置页面将是水平的。然后,当我完成设置并返回共享工作表时,共享表和我的展示UIViewController
变为水平。这打破了我的布局。
我已尝试将UIActivityViewController
括在UINavigationController
中的技巧,但在点击&#34后不会改变行为;更多"按钮。
有没有解决这个问题?
答案 0 :(得分:0)
你应该制作另一个uinavigationcontroller并从那里展示uiactivityviewcontroller。在这段代码中_image是一个UIImage哟想分享。 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: ^ {
;
}] ;
}];
答案 1 :(得分:0)
子类UIActivityViewController并覆盖supportedInterfaceOrientations以仅允许Portrait。