hier ist mein Code:iOS 6.1.2 - Warum die UIAlertView nicht abgewiesen werden? Hintergrund nach wie vor auf dem Bildschirm
UIAlertView *someError = [[UIAlertView alloc] initWithTitle:nil message:@"Server Error!" delegate:nil cancelButtonTitle: @"ok" otherButtonTitles: nil];
[someError show];
, wenn ich die OK-Taste, die Warnung Hintergrund immer noch da klopfen, und ich auf den Bildschirm tippen, wird die Statusleiste flackern.
ich einige Antworten gefunden, aber sie nicht arbeiten, ich meinen Code geändert:
dispatch_async(dispatch_get_main_queue(), ^{
UIAlertView *someError = [[UIAlertView alloc] initWithTitle:nil message:@"Server Error!" delegate:nil cancelButtonTitle: @"ok" otherButtonTitles: nil];
[someError show];
});
oder den Delegierten festgelegt:
dispatch_async(dispatch_get_main_queue(), ^{
UIAlertView *someError = [[UIAlertView alloc] initWithTitle:nil message:@"Server Error!" delegate:self cancelButtonTitle: @"ok" otherButtonTitles: nil];
[someError show];
});
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
dispatch_async(dispatch_get_main_queue(), ^{
[alertView dismissWithClickedButtonIndex:buttonIndex animated:NO];
});
}
es immer noch nicht funktioniert, dann versuche ich zu:
UIAlertView *someError = [[UIAlertView alloc] initWithTitle:nil message:@"error" delegate:nil cancelButtonTitle: @"ok" otherButtonTitles: nil];
[someError performSelectorOnMainThread:@selector(show) withObject:nil waitUntilDone:NO];
nicht funktionieren, verrückt, das ist nicht arbeiten:
[self performSelectorOnMainThread:@selector(showAlert:) withObject:@"error", nil) waitUntilDone:NO];
// the show Alert function
-(void)showAlert:(NSString*)str
{
UIAlertView *someError = [[UIAlertView alloc] initWithTitle:nil message: str delegate: nil cancelButtonTitle: @"ok" otherButtonTitles: nil];
[someError performSelectorOnMainThread:@selector(show) withObject:nil waitUntilDone:NO];
}
immer noch nicht funktionieren.
vor und nach dem Alarm zeigen:
Ich habe versucht, aber nicht funktioniert auch, die Alarmbox ist entlassen, aber der schwarze Hintergrund immer noch auf dem Bildschirm wie der Screenshot.I haben NSLog in alertView Delegat, es wurde aufgerufen. Wie kann ich den Hintergrund manuell entfernen? – yellow
Hmmmm ... Wenn diese Delegate-Methode in Ihrem View-Controller ist, versuchen Sie "' [self werdenFirstResponder]; '", nachdem Sie Ihre Warnung geschlossen haben. –
Michael Dautermann, es funktioniert immer noch nicht ... kann ich den Hintergrund nicht anzeigen, wenn das Popup-Fenster alert ist? – yellow