在mailViewController中禁用横向模式

时间:2012-11-24 13:58:38

标签: objective-c ios xcode

我在我的应用中使用以下代码禁用了横向模式。 :

- (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中按钮的颜色? (取消按钮和发送按钮)

1 个答案:

答案 0 :(得分:1)

您需要做的是将MFMailViewController子类化并覆盖它的方向。这里有一个很好的例子:MFMailComposeViewController in landscape你只需要改变它以适合你想要的方向。

编辑:这基本上是因为视图控制器默认启用此模式,它不是从主视图控制器派生的,因此需要将其子类化