0

ビュー コントローラーを閉じるときに、ユーザーに入力を求めるプロンプトを表示したいと考えています。この入力は、却下が実際に行われる前に必要です。

ビューコントローラーに次のコードを配置してみました:

-(void)dismissViewControllerAnimated:(BOOL)flag completion:(void (^)(void))completion
{
    UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"Hello!" message:@"Please enter your name:" delegate:self cancelButtonTitle:@"Continue" otherButtonTitles:nil];
    alert.alertViewStyle = UIAlertViewStylePlainTextInput;
    UITextField * alertTextField = [alert textFieldAtIndex:0];
    alertTextField.keyboardType = UIKeyboardTypeNumberPad;
    alertTextField.placeholder = @"Enter your name";
    [alert show];

    [super dismissViewControllerAnimated:flag completion:completion];
}

ただし、UIAlertView はブロックして待機しないため、スーパー コールが実行されます。

この関数からスーパー コールを削除し、alertView:clickedButtonAtIndex: 関数に移動することについて議論していました。まず、dismissViewControllerAnimated に渡されるフラグ変数と完了変数を格納して、alertView:clickedButtonAtIndex: 関数で使用できるようにする必要があると思います。

スーパーコールのためにこれらのパラメータ値を保存する必要がないように、より良いアプローチはありますか?

4

4 に答える 4

0

を押して閉じるために を作成し、 のUIAlertViewメソッドで必要な入力を処理します。必要なものが得られたら、単に.buttondelegateUIAlertViewdismissviewcontroller

于 2013-07-11T14:41:40.737 に答える