0

modalView をアプリに追加しましたが、すべて正常に動作しましたが、モーダルを閉じると、modalView 全体が約 1 ~ 2 センチメートル左にジャンプして消えます。

まだ理由が見つからなかったので、モーダルに関するコードは次のとおりです。

AppController:

- (void) showNameModal:(Player *)player 
{
    namesModal = [[PlayerModalView alloc] init];
    namesModal.delegate = self;
    namesModal.player = player;

    UINavigationController *navCon = [[UINavigationController alloc] initWithRootViewController:namesModal];

    navCon.modalPresentationStyle = UIModalPresentationFormSheet;
    [self presentModalViewController:navCon animated:YES];

    [navCon release];
    [namesModal release];
 }

 - (void)didDismissModalView 
 {
    [self dismissModalViewControllerAnimated:YES];
 }

モーダルビュー:

 - (void)dismissView:(id)sender 
 {
    [delegate didDismissModalView];
 }

ナビゲーションボタンとキーボードから呼び出されます

  [self dismissView:nil];

ご覧のとおり、特別なことは何もなく、実際にはマニュアルから取得できます。詳細は次のとおりです。

モーダルは画面中央に表示され、下からスライドインします。ずっと中心。modalView でいくつかのアクションを処理できます。中央に配置されたままです。

現在、ビューを閉じると、スライドするよりも左にジャンプします。

強制横向き右向きアプリなので(現状)左ジャンプしか通知できませんでした。

これを飛び越える方法はありますか?

ありがとう

4

4 に答える 4

0

このソリューションはうまく機能しているようです。横向きのiPadにキーボードを備えたModalViewControllerは、閉じたときに場所を変更します

ファーストレスポンダーの辞任を簡素化するために(それが難しい場合)、あなたはただ電話することができます

[self.view endEditing:YES];
[self dismissModalViewControllerAnimated:YES];
于 2011-01-21T19:37:37.823 に答える
0

これを試して、

- (void)didmissView:(id)sender
{
   [self.navigationController didmissModelViewControllerAnimated:YES];
}
于 2010-09-20T09:18:31.000 に答える
0

のインスタンスをモーダルに提示するのでPlayerModalViewはなく、UINavigationController. 表示される左のジャークは、(存在しない) 前のビューへのスライド変換を試みるナビゲーション コントローラーのデフォルト アニメーションである可能性が最も高いです。

のナビゲーション コントローラは必要ないようですPlayerModalView。代わりに、通常のビュー コントローラーを作成する必要があります。

于 2010-09-20T12:59:08.013 に答える
0

問題は、UIViewControllerモーダルで表示している は、表示している方向を許可していないため、表示が消えると、「許可されている」と見なされる方向でそれが行われることです。

これをモーダル ビューに追加しUIViewControllerます。

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return YES;
}
于 2012-08-03T09:38:35.173 に答える