1

私の iPhone アプリでは、プッシュ通知を使用しています。通知を受け取ったら、現在のViewControllerから別のViewControllerに移動したいです。私は- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndexappdelegate自体に書いた。そして、私はViewベースのアプリケーションを使用しているので、使用したいpresentModalViewController(と思います)。そして、次のコードを使用しました:

UIViewController *view = (UIViewController*)self.viewController.presentedViewController;
                [view presentModalViewController:self.anotherVC animated:NO];

しかし、エラーが発生しました

2012-06-19 17:47:52.521 iPhoneApp[1450:607] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Application tried to present a nil modal view controller on target <HomeScreenVC: 0x1fb77cc0>.'

ここで何がうまくいかなかったのですか?何か案が。

編集 問題を詳しく説明します。ビューコントローラーVC1、VC2、VC3、およびVC4があります。私の rootviewcontroller は VC1 です。VC2 や VC4 にいるときにプッシュ通知が来たら、通知アラートの [OK] ボタンをクリックすると、VC3 に移動したいと考えています。ただし、アラート ビューのデリゲート メソッドは appdelegate.m にあります。

コードを次のように更新しました

        self.menuVC = [[MenuScreenVC alloc] initWithNibName:@"MenuScreenVC" bundle:nil];
        UIViewController *view = (UIViewController*)self.viewController.presentedViewController;
        [view presentModalViewController:self.menuVC animated:NO];

VC2 の場合は VC3 に移動できますが、VC4 の場合は移動できません。助けてください

4

1 に答える 1

3

使用したものの代わりに、次のようにします

[self.window.rootViewController presentModalViewController:self.anotherVC animated:NO];
于 2012-06-19T12:33:56.200 に答える