gpt4 book ai didi

ios8 - 显示 UIAlertController(actionsheet) iOS8 时出现运行时异常

转载 作者:行者123 更新时间:2023-12-02 03:32:13 25 4
gpt4 key购买 nike

当我在iOS8 Beta5+ Xcode6中显示UIAlertController(ActionSheet)时,出现运行时异常。

此错误仅发生在 iPad 设备中。

使用 UIAlertController 时出现以下异常。

* Terminating app due to uncaught exception 'NSGenericException', reason: 'UIPopoverPresentationController (<_UIAlertControllerActionSheetRegularPresentationController: 0x15794370>) should have a non-nil sourceView or barButtonItem set before the presentation occurs.'

My Code for display ActionSheet as follows

     // Cancel Button
UIAlertAction *actionCancel = [UIAlertAction
actionWithTitle:NSLocalizedString(@"IDS_LABEL_CANCEL", nil)
style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
// cancel
//action handler
[self actionHandler:nil withTag:0 withButtonIndex:0];
}];

// print button
UIAlertAction *actionPrint = [UIAlertAction
actionWithTitle:NSLocalizedString(@"IDS_LABEL_PRINT", nil)
style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {

//action handler
[self actionHandler:nil withTag:kAttachmentActionSheetTag withButtonIndex:0];
}];

// Create action sheet
UIAlertController *alertController = [UIAlertController
alertControllerWithTitle:nil message:nil
preferredStyle:UIAlertControllerStyleActionSheet];

[alertController addAction:actionCancel];
[alertController addAction:actionPrint];

// show aciton sheet
[self presentViewController:alertController animated:YES
completion:nil] ;

最佳答案

在 iPad 上,警报将使用新的 UIPopoverPresentationController 显示为弹出窗口,它要求您使用以下三个属性之一指定用于呈现弹出窗口的 anchor :

为了指定 anchor ,您需要获取对 UIAlertController 的 UIPopoverPresentationController 的引用,并按如下方式设置其中一个属性:

alertController.popoverPresentationController.sourceView = parentView;

关于ios8 - 显示 UIAlertController(actionsheet) iOS8 时出现运行时异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25639883/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com