我在我的应用中使用以下代码禁用了横向模式。 :
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
但是当邮件视图显示它以某种方式启用陆地景观模式时。
邮件行为代码:
if ([MFMailComposeViewController canSendMail])
{
MFMailComposeViewController *mailer = [[MFMailComposeViewController alloc] init];
mailer.mailComposeDelegate = self;
[mailer setSubject:@"Subject 1"];
UIImage *myImage = [UIImage imageNamed:@"logo_v22.png"];
NSData *imageData = UIImagePNGRepresentation(myImage);
[mailer addAttachmentData:imageData mimeType:@"image/png" fileName:@"mobiletutsImage"];
NSString *emailBody = @"Test ";
[mailer setMessageBody:emailBody isHTML:NO];
[self presentModalViewController:mailer animated:YES];
}
主要问题:如何在mailView中禁用横向模式?
其他问题:如何更改mailView中按钮的颜色? (取消按钮和发送按钮)
答案 0 :(得分:1)
您需要做的是将MFMailViewController子类化并覆盖它的方向。这里有一个很好的例子:MFMailComposeViewController in landscape你只需要改变它以适合你想要的方向。
编辑:这基本上是因为视图控制器默认启用此模式,它不是从主视图控制器派生的,因此需要将其子类化