0

アプリで次のコードを使用してランドスケープモードを無効にしました。:

- (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のボタンの色を変更する方法は?(キャンセルボタンと送信ボタン)

4

1 に答える 1

1

あなたがする必要があるのは、MFMailViewController をサブクラス化し、その向きをオーバーライドすることです。ここに良い例があります:横向きの MFMailComposeViewController は、目的の向きに合わせて変更するだけです。

編集:これは基本的に、View Controller でこのモードがデフォルトで有効になっているためです。メインの View Controller から派生したものではないため、サブクラス化する必要があります。

于 2012-11-24T14:13:41.810 に答える