我遇到了UIAlertController
的问题。这是一个iPad项目,我有两个课程,比如第一和第二。
我使用模态演示文稿呈现第一名。在第二课我有一个按钮,点击我正在显示UIActionSheet来执行一些操作。它工作得很好,除非用户快速点击按钮,第二课程被解雇。
第一个VC:
- (IBAction)showNext:(id)sender
{
UIViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"SecondVC"];
[self presentViewController:vc animated:YES completion:nil];
}
第二个VC:
- (IBAction)showActionSheet:(UIButton *)sender
{
UIAlertController *alertVC = [UIAlertController alertControllerWithTitle:nil
message:nil
preferredStyle:UIAlertControllerStyleActionSheet];
[alertVC addAction:[UIAlertAction actionWithTitle:@"LogOut"
style:UIAlertActionStyleDestructive
handler:^(UIAlertAction *action)
{
}]];
[alertVC addAction:[UIAlertAction actionWithTitle:@"Update"
style:UIAlertActionStyleDefault
handler:^(UIAlertAction *action)
{
}]];
[alertVC setModalPresentationStyle:UIModalPresentationPopover];
UIPopoverPresentationController *popPresenter = [alertVC popoverPresentationController];
popPresenter.sourceView = sender;
popPresenter.sourceRect = sender.bounds;
[self presentViewController:alertVC animated:YES completion:nil];
}
这两个类中没有其他代码。我不知道为什么会发生这种情况,实际上它发生在我的一个客户端项目中,所以我用上面的代码创建了一个测试应用程序,这也导致了这个问题。
rootViewController
,问题将不会出现(但我不能这样做,我需要来回导航)有人可以帮帮我吗?我现在完全迷失了,没有得到任何有用的信息。 提前谢谢。
答案 0 :(得分:0)
我不知道是什么问题,但我修好了。我使用popoverPresentationControllerShouldDismissPopover
并返回了YES
。
- (BOOL)popoverPresentationControllerShouldDismissPopover:(UIPopoverPresentationController *)popoverPresentationController;
{
return YES;
}
<强>尤里卡:强>
这是一次意外!我没有其他方法来解决这个问题,所以我认为会做第二种选择。写作的时候,我不小心写了YES
而不是NO
。但它有效,我不知道它是如何工作的,以及这个问题的原因是什么。