1

私は示す TTMessageController のサブクラスを持っています...しかし、アニメーション化されるべきなのにアニメーション化されていません。モーダル ビューを表示するコードは次のようになります (ここで、PostToWebMessageController は TTMessageController のサブクラスです。

if (self.toWebMsgController == nil) {
    self.toWebMsgController = [[PostToWebMessageController alloc] init];
}

UINavigationController *navController = [[UINavigationController alloc] init];
[navController pushViewController:self.toWebMsgController animated:NO];

[self presentModalViewController:navController animated:YES];

何が起こるかというと、画面が真っ暗になり...キーボードが上にスクロールして表示されます...そして、TTMessageControllerビューが表示されます(アニメーションではありません)。[キャンセル] ボタンを使用してビューを閉じると、画面が真っ暗になり、すぐに消えます (再びアニメーションは表示されません)。

なぜこれが起こっているのですか?私はこれを他の多くの TT* コントローラーで使用していますが、モーダル表示で正しくアニメーション化することができません。

ありがとう

アップデート:

これは、モーダルに表示しようとするすべての UIViewController で発生しています。画面が真っ暗になり、キーボードが上向きに動き、ディスプレイが表示されます。なぜこれが起こっているのでしょうか?

4

3 に答える 3

2

これを理解する日...誰かが私の痛みから恩恵を受けることを願っています!

何が起こっているかは次のとおりです。

presentModalViewController を呼び出す UIViewController 自体は、別の UIViewController に含まれる UIScrollView 内にネストされています。どうやら、ココアタッチはあまり好きではないようです。とにかく、問題を修正するために、次のことを行いました。

  1. モーダル ビュー コントローラを表示する UIViewController に、タイプ UIViewController のプロパティを追加します (例: @property (nonatomic, retain) UIViewController *owningController;) 。

  2. プロパティ = を最上位の UIViewController (この場合は UIScrollView を含むもの) に設定します。

  3. モーダルビューを表示するUIViewControllerで...これを変更

[ self presentModalViewController:controller animation:YES];

これに...

[owningController presentModalViewController:controller animated:YES];
于 2010-05-11T23:07:51.957 に答える
0

UINavigationController を使用している理由がわかりません。モーダル ビューでロードするときに toWebMsgController コントローラーにナビゲーション バーを表示させたい場合は、コードを次のように変更してみてください。

if (self.toWebMsgController == nil) {
    self.toWebMsgController = [[PostToWebMessageController alloc] init];
}

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:toWebMsgController];

//[navController pushViewController:self.toWebMsgController animated:NO];

[self presentModalViewController:navController animated:YES];

モーダル ビューにナビゲーション バーが必要ない場合は、おそらく UINavigationController はまったく必要ありません。

于 2010-05-11T18:10:03.323 に答える
0

私は同じ問題を抱えていました。

ルート コントローラー (その上にコントローラーを提示する場合) を確認して、presentationStyle DOES が UIModalPresentationCurrentContext に設定されていないことを確認します

于 2013-09-03T09:29:47.300 に答える