Экран выбора действий на кнопке 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;
}
}