在iPad,iOS8和Objective-C中,UIAlertController没有显示取消按钮

时间:2015-03-24 20:02:11

标签: objective-c ipad ios8

我正在尝试使用UIAlertController。我需要一个带有两个按钮的弹出框 - “取消”和“删除并退出”。但我只能看到“删除并退出”按钮而不是取消按钮。这是代码: -

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];

不幸的是,我无法发布图片,所以如果您需要更多说明,请告诉我。

1 个答案:

答案 0 :(得分:17)

在iOS8上,仅在需要时显示取消按钮。如果您在iPhone上运行应用程序,则可见。如果您在iPad上运行应用程序,则不会显示“取消”按钮,并且当用户点击弹出窗口外时,将调用取消操作的处理程序(样式:UIAlertActionStyleCancel)。