1

アラート ビューに表示されるカスタムの「戻る」ボタンをユーザーがタップすると、前のビュー コントローラー (ナビゲーション コントローラーのスタック内) に戻るナビゲーションで問題が発生します。私はそれを行うためにいくつかの方法を試しましたが、それを行うことができませんでした. そのボタンがタップされると、アプリケーションは単純に、アラートをポップしたコントローラーに戻ります (ユーザーが "cancelButton" を押したかのように)。このサンプルコードで私を理解していただければ幸いです:

viewDidLoad では、アラートを次のようにポップアップ表示します。

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

次に、View Controller のコード内で next アクションを呼び出して、元に戻ろうとします。

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

コード全体が実行され、デバッグ エラーは発生しません。問題を適切に説明していない場合は、教えてください。改善できるように努めます。(私はスペイン人で、私の英語は最高ではありません)。前もって感謝します。


私の問題を解決するのが難しい可能性があることを示すために、私はそれをよりよく説明しようとします...

決定的な瞬間にタブバー付きのビューを表示するナビゲーションコントローラーがあります。ナビゲーション コントローラー内にタブ バー コントローラーを実装する方法がないことはご存知かもしれませんが、そのタブ バーを挿入する "カスタム コントローラー" を使用しました。

次に、タブバーのあるそのビュー(その中にすでにいくつかのサブビューを追加しました)から、タブバーのないビューに戻ります(アラートボタンをクリックします)。ナビゲーションバーの戻るボタンを押すとわかるように、ナビゲーション...

より明確になったのか、それとももっと混乱させてしまったのかはわかりません... 必要に応じて、コントローラーの図を作成してみることができます。ご協力いただきありがとうございます!

4

2 に答える 2

0

タブ バーの部分については、navControllers を tabController と正常にマージしました。タブ バー コントローラーは図の一番上にある必要があり、各タブ バー アイテムのビュー コントローラーの代わりに、特に最初のタブ バー アイテムで navControllers を使用します。最初にタブ バーを非viewDidLoad表示にし、必要なときに再表示するだけです。

于 2011-09-21T17:52:52.213 に答える
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];
  }

しかし、これは正しい方法ではありません。しかし、当分の間、それはあなたを助けます。

于 2011-02-09T10:48:35.123 に答える