2011-02-09 2 views
1

アラートビューで表示されるカスタムの「戻る」ボタンをタップすると、以前のビューコントローラ(ナビゲーションコントローラのスタック内)へのバックナビゲーションに関する問題が発生します。 私はそれを行ういくつかの方法を試しましたが、私はそれを行うことができませんでした。そのボタンがタップされると、アプリケーションは単に(ユーザーが「cancelButton」を押すように)警告をポップしたコントローラーに戻るだけです。 は、あなたがこのサンプルコードで私を理解することができます願っています:私は戻って移動しようとする次のアクションを呼び出すビューコントローラのコード内で、その後アラートビューボタンから戻るナビゲーション

UIAlertView *alert = [[UIAlertView alloc] 
     initWithTitle:@"XXXXXX" 
     message:@"" 
     delegate:self 
     cancelButtonTitle:@"OK" 
     otherButtonTitles:@"Back", nil]; 
    [alert show]; 
    [alert release]; 

:のviewDidLoadで

、私は警告をポップアップ表示します:

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{ 
if (buttonIndex == 1) 
{ 
    [self.navigationController popViewControllerAnimated:YES]; 
}} 

コード全体が実行され、デバッグエラーは発生しません。 問題を正しく説明していない場合は教えてください。 (私はスペイン語で、私の英語は最高ではありません)。 ありがとうございます。


私は私の問題を解決することが難しくなる可能性があることをお見せするために、より良いそれを説明しようとするでしょう...私はナビゲーションコントローラを持って

が、それは決定的瞬間に、示しタブバー付きのビュー。ナビゲーションコントローラ内にタブバーコントローラを実装する方法がないことがわかっているので、そのタブバーを挿入する「カスタムコントローラ」を使用しました。

次に、タブバー(その中にいくつかのサブビューを既に追加しています)からそのビューから、タブバーなしのビューに戻る(アラートボタンをクリックして)、前のビューになるように戻したいナビゲーションバーに戻るボタンを押したときに表示されるように、ナビゲーションのスタック内に表示されます。

今はっきりしているのか、私はあなたをもっと混乱させているのか分かりません... あなたが望むなら、コントローラの図を作ってください。 ご協力いただきありがとうございます!

+0

説明は十分です。さあ、助けてあげましょう。 –

+0

'self.navigationController'は' nil'ではありませんか?ナビゲーションコントローラにはすでにいくつかのView Controllerがありますか? – EmptyStack

+0

私のためにうまく動作します。 View Controllerを押しているコードを確認します。 – Max

答えて

0

別スレッドで試してみます。

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{ 
if (buttonIndex == 1) 
{ 
    [self performSelectorInBackground:@selector(newThreadMethod) withObject:nil]; 
} 
} 
-(void)newThreadMethod{ 
    [self performSelectorOnMainThread:@selector(go) withObject:nil waitUntilDone:NO]; 
} 
-(void)go{ 
     [self.navigationController popViewControllerAnimated:YES]; 
    } 

しかし、これは正しい方法ではありません。しかし、時間のためにそれはあなたを助けるでしょう。

+0

コードが私と同じ結果になるのは恐れています...とにかく、ありがとう! – GDel

0

タブバーの部分では、navControllerをtabControllerと正常にマージしました。タブバーコントローラは、図の一番上になければならず、各タブバー項目のビューコントローラの代わりに、特に最初のタブバー項目にnavControllersを使用します。最初のviewDidLoadのタブバーを非表示にして、必要なときに表示します。

関連する問題