3

私の iPhone アプリは、写真を表示する 1 つのビュー コントローラーを除いて、縦向きのみをサポートし、横向きモードもサポートするように設計されています。

したがって、全体として私のプロジェクトはすべての向きをサポートしますが、すべてのビュー コントローラー (写真ビュー コントローラーを除く) は次のメソッドを実装します。

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}  

問題:

私の(縦向きのみの)View Controllerの1つでUIActivityViewController、ユーザーが電子メールまたはSMSを介してコンテンツを共有することを選択できるようにするために使用しています。

ユーザーが電子メール オプションを選択すると、ios ネイティブの電子メール ビュー コントローラーが自動的に表示されます。

ユーザーがデバイスの向きを横向きに変更すると、メール ビュー コントローラーも横向きに変わります。ユーザーがキャンセル/送信ボタンをタップすると、メール コントローラーが閉じられ、すべてのアプリが横向きになります。

eamil ビュー コントローラーを強制的にポートレート モードのみにする方法はありますか?

独自の電子メール ビュー コントローラーとサブクラスUIActivityを作成して表示できることはわかってUIActivityViewControllerいますが、提示されたときにデフォルトの電子メール アイコンが表示されず、それを表示するのが本当に好きで、他の (灰色である必要がある) アイコンではありません。提供します。

4

4 に答える 4

1

現在開発中のアプリでも同様の問題がありました。自分のビューコントローラーが縦向きのままであることを確認するために、より多くの回転メソッドを上書きすることになりました。

それが私のために働いたものです(IOS5 +):

- (BOOL) shouldAutorotate {
    return YES;
}

- (NSUInteger)supportedInterfaceOrientations {
    return UIInterfaceOrientationMaskPortrait;
}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
    return UIInterfaceOrientationPortrait;
}

- (BOOL)shouldAutorotateToInterfaceOrientation (UIInterfaceOrientation)interfaceOrientation {
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

iOS5より前の場合、またはそれが機能しない場合は、次をご覧ください: http://developer.apple.com/library/ios/#documentation/uikit/reference/UIViewController_Class/Reference/Reference.html

あなたがそれを機能させることを願っています。:)

于 2013-02-20T11:24:59.910 に答える
0

この問題の解決策が見つからなかったため、独自の電子メール UIActivity サブクラスを実装することになりました...

于 2013-03-10T13:03:55.697 に答える
0

試してみるべきかもしれません

- (void)viewWillAppear:(BOOL)animated
{
   [self shouldAutorotateToInterfaceOrientation: UIInterfaceOrientationLandscapeRight];
   [super viewWillAppear:animated];
}

あなたの見解では?

于 2013-02-20T11:20:08.577 に答える