Wie präsentiert man einen UIAlertController aus einer anderen Klasse?Vorhandener "Controller" aus einer anderen Klasse in Objective-C
Ich möchte wissen, wie Sie die Wirkung einer Schaltfläche „OK“ in einem UIAlertController erfassen können, die in der Klasse B erstellt wurde, aber in der Klasse A.
präsentiert Dies ist, wie ich die Methode aufrufen, die die Benachrichtigung erstellt auf Klasse "Fehlerbehandler" von KlasseA:
ErrorHandler *handler = [[ErrorHandler alloc] init];
[self presentViewController:[handler alertWithInternetErrorCode] animated:YES completion:nil];
Und das ist die Umsetzung von alertWithInternetErrorCode im ErrorHandler.m:
- (UIAlertController *)alertWithInternetErrorCode{
UIAlertController * alert = [UIAlertController
alertControllerWithTitle:@"Error"
message:@"No internet conneciton"
preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction * cancel = [UIAlertAction
actionWithTitle:@"Cancel"
style:UIAlertActionStyleCancel
handler:^(UIAlertAction * action) {
NSLog(@"cancelled");
}];
[alert addAction:cancel];
return alert;
}
Noch einmal, ich möchte zu wissen, wie man diese Art von Objekten in anderen Klassen erstellen und trotzdem in der Klasse präsentieren kann, in der man sie nennt. Dazu gehört das Erfassen ihrer Aktionen. In diesem Fall wäre es die Aktion NSLog innerhalb der Schaltfläche "Abbrechen". Wäre es möglich, anstelle des NSLog auch eine Methode aufzurufen? Sagen wir eine Delegiertenmethode und navigieren Sie zurück zum Code in Klasse A?
Pass gibt es eine View-Controller wie: - (void) presentAlertWithInternetErrorCodeOnController: (UIViewController *) Controller –