当我关闭视图控制器时,我想提示用户输入。在实际发生解雇之前,此输入是必要的。
我尝试将以下代码放在我的视图控制器中:
-(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:函数中使用它们。
有没有更好的方法,这样我就不必为超级调用存储这些参数值了?