I would like to present a UIAlertController with 2 buttons.
One button should close the alert and the second should perform an action but remain the alert on screen. Is there some configuration that can be done to action that it won't close the alert?
UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"title"
message:@"message"
preferredStyle:UIAlertControllerStyleAlert];
[alert addAction:[UIAlertAction actionWithTitle:@"Do Something"
style:UIAlertActionStyleDefault
handler:^(UIAlertAction *action) {
//Pressing this button, should not remove alert from screen
}]];
[alert addAction:[UIAlertAction actionWithTitle:@"Close"
style:UIAlertActionStyleDefault
handler:^(UIAlertAction *action) {
//Regular functionality- pressing removes alert from screen
}]];
[alert show];
This (Prevent UIAlertController to dismiss) was suggested as possible answer, but the question deals with text field. I need one of the action buttons to not close the alert when pressed.
Speaking from a user-perspective, a button press that doesn't follow through with an action would make me wonder if something was broken. If you're trying to use this as an opportunity to get further information, or some detail about the button press intention, I think a solution that adheres to user-expectation (though maybe a little annoying?) is to simply present a second dialog box after closing out the first. Basically, a "one-dialog-box-per-question" way of handling it.
Otherwise, I'll agree with the other suggestions and say that you need a custom view here, not a stock UIKit solution.
You can't do this.
Only one solution is to create a custom view controller that will look like native
UIAlertController
.Try this code.
How about this code:
set
NO
toenabled
property of UIAlertAction. It works well.You can't do it with default
UIAlertViewController
, if you want to do this you need to create custom view controller whose look likeUIAlertController
.You can use this custom view controller.
https://github.com/nealyoung/NYAlertViewController