gpt4 book ai didi

ios - UIActivityViewController 关闭后的正确方向

转载 作者:行者123 更新时间:2023-12-01 16:52:19 26 4
gpt4 key购买 nike

我正在从我的 Controller 展示 UIActivityViewController。我遇到了旋转问题。在选择了一些数据共享选项后,比如说“邮件”,邮件撰写 View Controller 就会出现。但是如果我之后旋转设备并关闭邮件 Controller ,我的 VC 不会旋转到当前方向。我尝试为 UIActivityViewController 设置完成处理程序,如下所示:

1)

[activityViewController setCompletionHandler:^(NSString *activityType, BOOL completed){
[UIViewController attemptRotationToDeviceOrientation];
}];

或者

2)
[activityViewController setCompletionHandler:^(NSString *activityType, BOOL completed){
UIInterfaceOrientation currentOrientation = [[UIApplication sharedApplication] statusBarOrientation];
[self layoutForInterfaceOrientation:currentOrientation];
}];

第一个解决方案根本没有帮助。第二种解决方案使导航栏保持不变(高度差 12 点)。

请告知如何处理这种情况。

最佳答案

我已经解决了这个问题。首先,我应该说,无论当前设备方向及其在显示邮件之前的状态如何,在关闭 MailComposeVC 后,我的 VC 总是旋转为纵向...
当 MailComposeVC 在屏幕上时,在自动旋转期间调用的唯一 VC 方法是 viewWillLayoutSubviews/viewDidLayoutSubviews . ( willAnimateRotationToInterfaceOrientation 没有被调用!)
因此,如果我的 VC 不可见,我重置导航栏以恢复其高度并调用我的自定义布局方法,如下所示:

(void) viewDidLayoutSubviews {
// HACK: forcing the bars to refresh themselves - this helps to get the shorter version when switching to landscape and the taller one when going back!!!
if (amIhidden) {
[self.navigationController setNavigationBarHidden:YES animated:NO];
[self.navigationController setNavigationBarHidden:NO animated:NO];
UIInterfaceOrientation currentOrientation = [[UIApplication sharedApplication] statusBarOrientation];
[self layoutForInterfaceOrientation:currentOrientation];
}
}
amIhidden BOOL呈现MailComposeViewController时设置,如下:
UIActivityViewController *activityViewController = [[UIActivityViewController alloc]
initWithActivityItems:@[self]
applicationActivities:nil];
amIhidden = YES;
[activityViewController setCompletionHandler:^(NSString *activityType, BOOL completed){
amIhidden = NO;
}];
[self presentViewController:activityViewController animated:YES completion:nil];

希望我的解决方案对其他人有所帮助!

关于ios - UIActivityViewController 关闭后的正确方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14609911/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com