【发布时间】:2013-02-20 11:12:32
【问题描述】:
我的 iPhone 应用程序设计为仅支持纵向,除了一个显示照片的视图控制器,还支持横向模式。
所以总的来说我的项目支持所有方向,但是每个视图控制器(除了照片视图控制器)都实现了该方法:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
问题:
在我的一个(仅纵向)视图控制器中,我使用UIActivityViewController 让用户选择通过电子邮件或短信共享内容。
当用户选择电子邮件选项时,它会自动显示 ios 原生电子邮件视图控制器。
如果用户现在将设备的方向更改为横向,电子邮件视图控制器也会更改为横向,现在如果用户点击取消/发送按钮,电子邮件控制器将被关闭,现在我的所有应用程序都处于横向状态!
有没有办法强制 eamil 视图控制器仅处于纵向模式?
我知道我可以创建自己的电子邮件视图控制器和子类UIActivity 来显示它,但是UIActivityViewController 在出现时不会显示默认的电子邮件图标,我真的很喜欢它来显示它而不是一些我将提供的其他(必须是灰色)图标。
【问题讨论】:
-
所以你不想让你的应用在横向模式下运行?
-
我不能只将项目设置更改为纵向,因为我确实有一个也支持横向的 PhotoViewController。但除此之外,是的,我不希望任何其他视图控制器支持横向。
-
因此仅在该特定视图中,在 willAutorotateOrientation 中启用纵向模式 .... 以便电子邮件控制器不会旋转 ...
标签: iphone ios objective-c uiinterfaceorientation uiactivityviewcontroller