2

ストーリーボードを使用していて、特定の条件が満たされたときに前の画面に戻ろうとしています。IE、ログイン時にユーザー名が見つかりません。

基本的に、ユーザーは自分の情報を入力してボタンを押します。情報が正しくないか見つからない場合は、UIAlertView メッセージを表示して、情報が正しくないことを知らせます。順番のせいで、サーバーにデータを確認する前にボタンを押して画面遷移。そのため、確認する前に画面の変更を停止することはできません。

UIAlertView でユーザーがボタンを押してシグナルがこのメソッドに戻るかどうかを確認しています..

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

}

そのメソッドの 1 行を使用して前の画面に戻ろうとしていますが、何も起こりません。ストーリーボードの動作は異なると思いますが、ストーリーボードで前の画面に戻るための構文がわかりません。

ありがとう。

4

2 に答える 2

1

ストーリーボードがビュー コントローラーをプッシュする場合は、いつでもプログラムでポップできます。これは問題ではありません。ここでの問題は、UIAlertView がアニメーションを使用して表示されるため、一度に別のアニメーションを実行できないことです。

  1. したがって、2 つのオプションがあります。アニメーションなしでView Controllerをポップしても機能するはずですが、ユーザーは自分がどこに到達しているのかわからない場合があります。

  2. You can put the call that pops the viewcontroller into a helper method and call this methd like this: [self performSelector:@selector(myPopHelperMethod:) withObject:nil afterDelay:0.8f]. This should pop your view controller after 0.8 seconds which is enough to let the UIAlertView finish its animation.

于 2011-12-12T22:11:38.227 に答える
0

あなたself.navigationControllerは nil であると思います。これにより、メソッドはノーオペレーションになります。

于 2011-12-13T09:47:05.497 に答える