次のコードで本当に奇妙な問題をデバッグしようとしています:
if(condition1) {
ImageViewController* imageViewer = [[ImageViewController alloc] initWithImageData:tappedItem];
[self presentViewController:imageViewer animated:YES completion:^{
[imageViewer loadImage];
}];
}
else if(condition2) {
DocumentViewController* docViewer = [[DocumentViewController alloc] init];
[self presentViewController:docViewer animated:YES completion:nil];
}
condition1
つまり、との状態に応じて、condition2
の 2 つのサブクラスのうちの 1 つがUIViewController
ユーザーにモーダルに表示されます。
2 番目のケースではすべて問題ありませんが、最初のケースでは、View Controller が画面の下部からスライドして表示される通常のアニメーションが表示されません。代わりに、少し遅れて突然表示され、画面全体が覆われます。もう 1 つの奇妙な点は、解雇アニメーションで、View Controller 内のイメージ ビューが透明になることです。
完了ブロックを削除しても効果はありません。View Controller を のインスタンスに置き換えてUIViewController
も、なんらかの理由でアニメーションがインスタンスに対しても機能しないことを示す以外は効果がありませんUIViewController
。
などで何か間違ったことをしたのではないかと考えてviewDidLoad
、ビューのロード/表示メソッドをコメントアウトしようとしましたが、役に立ちませんでした。
アプリにはタブバーがあり、表示されたくないため、ビューコントローラーをナビゲーションスタックにプッシュすることはオプションではありません。
アップデート
のインスタンスを do に置き換えるImageViewController
とDocumentViewController
、アニメーションが発生します。ImageViewController
問題は次のようになります:アニメーションを台無しにするために何ができたでしょうか?