Why isn't UIAlertView Showing?

前端 未结 4 1695
南笙
南笙 2021-01-06 11:12

For some reason screen gets dark and freezes, alert is not shown... can someone please help?

Thanks in advance!

} else {
    UIAlertView *alert = [[U         


        
相关标签:
4条回答
  • 2021-01-06 11:49

    You are probably calling show from a background thread, call it on the main thread like this:

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Hello!" 
                                                message:@"Hello!" delegate:self 
                                                cancelButtonTitle:@"Done" 
                                                otherButtonTitles:nil];
    [alert performSelectorOnMainThread:@selector(show)
                                withObject:nil
                                waitUntilDone:NO];
    [alert release];
    
    0 讨论(0)
  • 2021-01-06 11:58

    You get a dark screen without a popup, or slower popup if you show the UIAlertView from a background thread. Just out it back in the main thread and it will be fine. I just had this problem last week.

    0 讨论(0)
  • 2021-01-06 12:03

    Delegate is correct, but maybe because your do a release at the end it may cause a problem.

    Try with a nil delegate :-)

    For example :

    UIAlertView *alertView;
    alertView = [ [ UIAlertView alloc ] init ];
    [ alertView setMessage:@"Hello World" ];
    [ alertView show ];
    [ alertView release ];
    

    If it works, then it was the delegate and you need to declare the variable as a class var. Or it maybe be elsewhere.

    0 讨论(0)
  • 2021-01-06 12:13

    Is this alert maybe sitting in a big loop and you are not running on multiple threads? The screen darkening and nothing happening is something I equate with running a long process on the main thread (so the UI doesn't refresh and show the alert).

    0 讨论(0)
提交回复
热议问题