modalViewControllerの却下に関してiOS6で問題に直面しています
これが私が共有しているコードスニペットです:
UIViewController *controller=appdelegate.navigationController.topViewController;
if(kDeviceVersion>=5.0){
if(controller.parentViewController){
if(controller.parentViewController.parentViewController){
[controller.parentViewController.parentViewController dismissViewControllerAnimated:NO completion:nil];
}
[controller.parentViewController dismissViewControllerAnimated:NO completion:nil];
}
}
else{
if(controller.parentViewController){
if(controller.parentViewController.parentViewController){
[controller.parentViewController.parentViewController dismissModalViewControllerAnimated:NO];
}
[controller.parentViewController dismissModalViewControllerAnimated:NO];
}
}
このコードは、ios4.0からios5.1.1で正常に機能しています。しかし、ios6では動作しませんでした。私が却下したいモーダルビューコントローラーは却下されていません。代わりに、このエラーが表示されます。
ビューが現在表示されていないモーダルビューコントローラを閉じようとします。self = UINavigationController:0xa947440 modalViewController = UINavigationController:0x8c36170
しかし、presentModalViewControllerを使用してそのビューコントローラーを提示しようとすると、次のように表示されます。
警告:すでにUINavigationController:0x8c36170を表示しているUINavigationController:0xa947440に表示しようとしました
iOS6でこの問題を解決する方法と修正方法を教えてください。