如何在UIAlertController内的块中使用TextField中的文本?

时间:2016-02-13 18:10:05

标签: ios objective-c iphone xcode uialertcontroller

我有一个UIAlertController,它包含一个文本字段和2个按钮:确定和取消。我想检索用户在按下OK时在文本字段中输入的文本,但由于文本字段位于块中,因此我无法从OK按钮块访问块内的textField.text字段。我如何访问它并使用用户输入的文本?请参阅下面的代码。

    - (IBAction)saveItinerary:(id)sender
{
    NSString *itineraryNameInput = [[NSString alloc] init];
    UIAlertController * alert=   [UIAlertController
                                  alertControllerWithTitle:@"Save Itinerary"
                                  message:@"Enter Name for the Itinerary"
                                  preferredStyle:UIAlertControllerStyleAlert];

    UIAlertAction* ok = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * action)
    {

    }];

    UIAlertAction* cancel = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleDefault handler:^(UIAlertAction * action)
    {
        [alert dismissViewControllerAnimated:YES completion:nil];
    }];

    [alert addAction:ok];
    [alert addAction:cancel];

    [alert addTextFieldWithConfigurationHandler:^(UITextField *textField) {
        textField.placeholder = @"Name";
        textField.text = itineraryNameInput;
    }];

    NSLog(@"name = %@", itineraryNameInput);

    [self presentViewController:alert animated:YES completion:nil];
}

1 个答案:

答案 0 :(得分:0)

使用textFields的{​​{1}}属性。

UIAlertController