Экран выбора действий на кнопке IOS

Эй, я хочу сделать это Это моя кнопка, и в кнопке есть текстовое поле. Я хочу сделать это, когда я нажму на кнопку, появится средство выбора листа действий и выдаст 4-5 списка строк, которые я выберу, они появятся в текстовом поле, которое находится в кнопке., Помогите мне, пожалуйста

введите описание изображения здесь

1 ответ

Начните с добавления цели для вашей кнопки. В Objective-C это было бы так:

[myButton addTarget:self
             action:@selector(buttonPressed:)
   forControlEvents:UIControlEventTouchUpInside];

Затем создайте метод buttonPressed, Примером этого может быть:

- (void)buttonPressed:(id)sender {
    if ([sender isEqual:self.myButton]) {
        //This is where you can create the UIAlertController
    }
}

Затем, чтобы создать UIAlertController:

UIAlertController *myAlertController = [UIAlertController alertControllerWithTitle:@"Title"
                                                                     message:@"Message"
                                                              preferredStyle:UIAlertControllerStyleActionSheet];

Затем вы создаете действия, для которых каждая кнопка должна отображаться на листе действий. У вас должен быть заголовок для кнопки и действие для них, хотя блок действия может быть пустым.

UIAlertAction *action1 = [UIAlertAction actionWithTitle:@"Action 1"
                                                  style:UIAlertActionStyleDefault
                                                handler:^(UIAlertAction *action) {
                                                    //Whatever you want to have happen when the button is pressed
                                                }];
[myAlertController addAction:action1];

//repeat for all subsequent actions...

UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"Cancel", nil)
                                                       style:UIAlertActionStyleCancel
                                                     handler:^(UIAlertAction *action) {
                                                         // It's good practice to give the user an option to do nothing, but not necessary
                                                     }];
[myAlertController addAction:cancelAction];

Наконец, вы представляете UIAlertController:

[self presentViewController:myAlertController
                   animated:YES
                 completion:^{

                 }];

НОТА:

Если вы создаете для iPad и используете стиль Action Sheet для UIAlertController, то вам нужно будет указать источник, из которого UIAlertController будет представлять данные. Это можно сделать так:

if ([sender isKindOfClass:[UIView class]]) {
    if ([myAlertController.popoverPresentationController respondsToSelector:@selector(setSourceView:)]) { // Check for availability of this method
        myAlertController.popoverPresentationController.sourceView = self.myButton;
    } else {
        myAlertController.popoverPresentationController.sourceRect = self.myButton.frame;

    }
}
Другие вопросы по тегам