ios - 当 presentViewController 关闭时不起作用

Posted

技术标签:

【中文标题】ios - 当 presentViewController 关闭时不起作用【英文标题】:ios - when presentViewController is closed not working 【发布时间】:2015-03-06 11:15:53 【问题描述】:

我正在使用运行良好的 presentViewController,见下文:

当 presentViewController 完全关闭或按下完成/返回按钮时,我需要运行一个代码(让我们说一个警报“我已关闭”)。

我不想使用完成块,因为它会在 presentViewController 打开后立即触发。在 presentViewController 关闭或关闭后,我基本上需要能够运行一些代码。

代码:

QLPreviewController* myPopup = [[QLPreviewController alloc] init];
    myPopup.delegate = weakSelf;
    myPopup.dataSource = weakSelf;

    UIViewController* root = [[[UIApplication sharedApplication] keyWindow] rootViewController];

    [root myPopup animated:YES  completion:nil ];
    //here put alert when it's closed or dismissed

有人可以帮忙吗?

【问题讨论】:

【参考方案1】:

完成块不起作用,因为延迟太短?尝试将 dispatch_after 放入完成块并设置您需要的延迟。

您可以在这里查看代码示例http://soulwithmobiletechnology.blogspot.co.uk/2012/07/tutorial-how-to-use-qlpreviewcontroller.html

很快:

QLPreviewController *previewController=[[QLPreviewController alloc]init];
previewController.delegate=self;
previewController.dataSource=self;
[self presentModalViewController:previewController animated:YES];

和委托:

- (void)previewControllerDidDismiss:(QLPreviewController *)controller 
// display alert

【讨论】:

我也这样做了,但是完成块内的任何内容都会在打开 QLPreviewController 时触发。单击完成按钮并关闭 QLPreviewController 后,我需要显示警报 如果 QLPreviewController 会在按下完成按钮后立即委托呈现视图控制器/视图将消失/关闭调用完成块? 可能是一个解决方案,但我不确定我知道如何做/实施它 QLPreviewController 已经有代表 previewControllerWillDismiss: 和 previewControllerDidDismiss: 。你只需要处理它们 我真的很抱歉我的无知,但我是ios开发的新手。在哪里可以找到您的提案示例?

以上是关于ios - 当 presentViewController 关闭时不起作用的主要内容,如果未能解决你的问题,请参考以下文章

当 SDK 目标为 iOS7 时,UIAlertView 太记账,无法在 iOS8 中替换

iOS - 当应用程序在后台时取消蓝牙连接

ios - 当 presentViewController 关闭时不起作用

当键盘出现时,UIPopoverController 在 iOS 7 上奇怪地移动

当ios应用关闭时,Firebase通知点击崩溃

Agora.io:当主机用户离开时离开所有用户