Ich weiß, dass dies alte Schule Frage ist - aber ich habe im Internet gesucht und gefunden Lösungen zu veraltet. Wie würde ich einen UIAlertcontroller als popOver (mit Pfeilrichtung nach oben) in einem barButton implementieren. Hier ist der Code:Wie UIAlertcontroller als PopOver (mit Pfeilrichtung nach oben) in einem UIBarbutton implementieren
- (IBAction)eventSortingAction:(UIBarButtonItem *)sender {
UIAlertController * view= [UIAlertController
alertControllerWithTitle:@"My Title"
message:@"Select you Choice"
preferredStyle:UIAlertControllerStyleActionSheet];
UIAlertAction* ok = [UIAlertAction
actionWithTitle:@"OK"
style:UIAlertActionStyleDefault
handler:^(UIAlertAction * action) {
//Do some thing here
[view dismissViewControllerAnimated:YES completion:nil];
}];
UIAlertAction* cancel = [UIAlertAction
actionWithTitle:@"Cancel"
style:UIAlertActionStyleCancel
handler:^(UIAlertAction * action) {
[view dismissViewControllerAnimated:YES completion:nil];
}];
[view addAction:ok];
[view addAction:cancel];
[view setModalPresentationStyle:UIModalPresentationPopover];
view.modalInPopover = YES;
view.popoverPresentationController.permittedArrowDirections = UIPopoverArrowDirectionUp;
view.popoverPresentationController.delegate = self;
[self presentViewController:view animated:YES completion:nil];
UIView* senderView = [sender valueForKey:@"view"]; //HACK
UIPopoverPresentationController* popover = view.popoverPresentationController;
if (popover) {
popover.sourceView = senderView;
popover.sourceRect = senderView.bounds;
popover.permittedArrowDirections = UIPopoverArrowDirectionUp;
popover.barButtonItem = self.actionBarButton;
popover.delegate = self;
}}
anscheinend bekam ich immer eine "popover = nil". Bitte Hilfe! Danke im Voraus!
Übrigens ist dieser Code nicht meins, nur testet es in Xcode.
Aktualisieren Sie Ihre Frage mit dem Code, der tatsächlich den 'UIAlertController' erstellt. Und erklären Sie, was tatsächlich mit dem Code passiert, den Sie gepostet haben, im Gegensatz zu dem, was Sie tun möchten. – rmaddy
Hallo rmaddy, ich habe die aktualisierte Frage unten veröffentlicht. Ich kann meine Frage nicht bearbeiten - mir fehlt noch Reputation. – macky12345
Sicher können Sie bearbeiten. Klicken Sie auf den Link zum Bearbeiten unter Ihrer Frage. Schreibe keine Antwort. – rmaddy