adding ok button at run time in UIAlertview ios

我的未来我决定 提交于 2019-12-10 23:48:51

问题


I call alert with progress indicator view while calling web services.i am having an alert view set up like this:

    [self.activityIndicatorView setHidden:NO];
self.alertView = [[UIAlertView alloc] initWithTitle:@"Sending Login Request.."
                                       message:@"\n"
                                      delegate:self
                             cancelButtonTitle:nil
                             otherButtonTitles:nil];

self.activityIndicatorView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
self.activityIndicatorView.center = CGPointMake(139.5, 75.5); // .5 so it doesn't blur
[self.alertView addSubview:self.activityIndicatorView];
[self.activityIndicatorView startAnimating];
[self.alertView show];

Later if login fails I want to put "OK" button on alert view, withot dismissing self.alertView, and again showing new instance of self.alertView.Some thing like this:

if (isThereErrorFromJsonResp) {
    [self.activityIndicatorView stopAnimating];
    [self.activityIndicatorView removeFromSuperview];
    self.activityIndicatorView = nil;
    [self.alertView setTitle:isThereErrorFromJsonResp];
    //here i want to show ok button how?
    return;
}

So how should i put OK button? Any Suggestion?


回答1:


Remove the alert on getting the response and display an new instance of alert like this

[self.alertView dismissWithClickedButtonIndex:0 animated:YES];
self.alertView = [[UIAlertView alloc] initWithTitle:isThereErrorFromJsonResp
                                       message:@"\n"
                                      delegate:self
                             cancelButtonTitle:@"OK"
                             otherButtonTitles:nil];
[self.alertview show];

SOLUTION

Ok tried out and got it

Use

    [alertView dismissWithClickedButtonIndex:0 animated:YES];
    [alertView addButtonWithTitle:@"Ok"];
    [alertView show];

This will add the button to the alertview




回答2:


Look at using ATMHud instead - this is a heads-up-display that you can modify while its showing, and can show, start, stop, spinners, add messages etc. When I used it I had a message say "Tap to Cancel", then when the login succeeded, showed a "Success!" for a second or so, then made it disappear. This looks HUD looks very professional in the way it animates, and you have a lot of control over it too.




回答3:


Try this code:

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"" message:@"Logout in offline mode may cause of data lose. Do you still want to logout?" delegate:self cancelButtonTitle:@"NO" otherButtonTitles:@"YES",nil];
    alert.tag=11;
    [alert show];
    [self performSelector:@selector(go:) withObject:alert afterDelay:1.0];


-(void)go:(UIAlertView*)alert
{
    UIButton *b = (UIButton*)[alert viewWithTag:1];
    b.titleLabel.text = @"test";

}

you will have to add "OK" button initially. And set its property as Hidden = TRUE. and in go method set it property Hidden = FALSE



来源:https://stackoverflow.com/questions/16857802/adding-ok-button-at-run-time-in-uialertview-ios

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!