2015-03-24 2 views
7

Ich versuche, UIAlertController zu verwenden. Ich brauche ein Popover mit zwei Tasten - "Abbrechen" und "Löschen und Abmelden". Aber ich kann nur die Schaltfläche "Löschen und Abmelden" und nicht die Abbrechen-Schaltfläche sehen. Hier ist der Code: -Abbrechen Schaltfläche wird nicht für einen UIAlertController in iPad, iOS8 und in Objective-C

NSString *confirmText = "Hi"; 
UIAlertController *alert = [UIAlertController alertControllerWithTitle:confirmText message:@"" preferredStyle:UIAlertControllerStyleActionSheet]; 


// Created a deleted action 
UIAlertAction *destroyAction = [UIAlertAction actionWithTitle:@"Delete and Sign Out" 
             style:UIAlertActionStyleDestructive 
             handler:^(UIAlertAction *action) { 
              NSLog(@"Delete Action Pressed"); 
              [self signout]; 
             }]; 
UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"Cancel" 
                 style:UIAlertActionStyleCancel 
                handler:nil]; 


[alert.view setTintColor:[UIColor grayColor]]; 
[alert addAction:cancelAction]; 
[alert addAction:destroyAction]; 
[alert setModalPresentationStyle:UIModalPresentationPopover]; 

UIPopoverPresentationController *popPresenter = [alert popoverPresentationController]; 
// Set the sourceView. 
popPresenter.sourceView = logoutButton; 
popPresenter.sourceRect = logoutButton.bounds; 
[self presentViewController:alert animated:YES completion:nil]; 

Leider bin ich nicht in der Lage Bilder zu veröffentlichen, so lassen Sie es mich wissen, wenn Sie mehr Klärungen müssen.

+0

Ich habe Ihren Code getestet und alles funktioniert ... Ich sehe beide Tasten auf dem iPad und iPhone in iOS8. Bitte fügen Sie Ihren Code ein, mit dem Sie den Alert-Controller instanziiert haben. – Chase

Antwort

12

Auf iOS8 wird die Abbrechen-Schaltfläche nur bei Bedarf angezeigt. Wenn Sie die App auf dem iPhone ausführen, ist sie sichtbar. Wenn Sie die App auf dem iPad ausführen, wird die Schaltfläche zum Abbrechen nicht angezeigt, und der Handler für die Aktion zum Abbrechen (style: UIAlertActionStyleCancel) wird aufgerufen, wenn der Benutzer außerhalb des Popups tippt.