2012-02-10 4 views
0

UIALertViewボタンが押された場合、UIViewControllerを開きたいと思います。uialertviewボタンからuiviewcontrollerを開く

私はそのためのコードを持っています。しかし、のUIViewControllerは

私はuialertviewが正常に動作していると確信しています:(開かれておらず、すべての。とのUIViewControllerのコードも同様に細かいです。(他の場所から呼び出された場合、それは動作します)。

すべてのヘルプ?

感謝。

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex 
{ 
if (buttonIndex == 0) //Yes, Sign Me Up! 
{ 
    NSLog(@"0"); 
    ViewerWebController *web = [[ViewerWebController alloc] initWithURL:[NSURL URLWithString:@"http://www.funimation.com/"]]; 
    [web setShowToolbar:YES]; 
    [self.navigationController pushViewController:web animated:YES]; 
    [web release]; 

} 
else if (buttonIndex == 1) //Remove from List 
{ 
    NSLog(@"1"); 
    [[NSUserDefaults standardUserDefaults] setBool:false forKey:@"subscribeButtonOption"]; 
    [_tableView reloadData]; 
} 
else if (buttonIndex == 2) //"Maybe Later" 
{ 
    NSLog(@"2"); 
} 
} 
+0

明らかに一部の部分が正常に動作していません:)コードを投稿してください。 – Rayfleck

+0

View ControllerをNavigation Controllerにプッシュするか、またはView Controllerをモーダルに表示していますか? –

+0

UIViewControllerを「開く」ために何を使用していますか?いくつかのコードスニペットを見ることなく何が間違っていると言うのは難しいです。 – Kekoa

答えて

1

これは働くかもしれ..

- (void)alertView:(UIAlertView *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex { 
    // the user clicked one of the OK/Cancel buttons 
    if (buttonIndex == 0) 
    { 
     YourRootNavigationController *navController = [YourRootNavigationController sharedInstance]; // singleton 
     [navController pushViewController:YOUR_CONTROLLER animated:YES]; 
    } 
    else 
    { 
    NSLog(@"cancel"); 
    } 
} 
+0

ビューコントローラをナビゲーションコントローラスタックの一部にします。それは可能ではありませんか? – Ahsan

+0

今すぐ試して、私はあなたがナビゲーションコントローラを使用していないと思った.. – LightNight

1

アラートビューにナビゲーションコントローラがありません。 View Controllerをプッシュするナビゲーションコントローラへの参照を保持する必要があります。

+0

私はそれをどのようにするのですか?何かヒント? – Ahsan

+0

'NSLog(@ navコントローラは%@"、self.navigationController); 'をpushViewControllerの呼び出しのすぐ上に追加します。 – Rayfleck

0

didDismissWithButtonIndexではなくclickedButtonAtIndexを使用してください。前者は後が呼び出される

UIAlertView画面上にまだある間に、後者が発生している間UIAlertViewは、画面の階層から削除されています。画面上で、UIAlertViewはアプリの性質を変更します。これは、ビューをnavコントローラにプッシュしようとすると悪いことが起こることを意味します。

clickedButtonAtIndexのこの誤用は、インターネットとStackOverflowの周りに浮かぶ一般的な誤情報のようです。私に不満の時間をかける。

関連する問題