【问题标题】:ios - when presentViewController is closed not workingios - 当 presentViewController 关闭时不起作用
【发布时间】: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

有人可以帮忙吗?

【问题讨论】:

    标签: ios qlpreviewcontroller presentviewcontroller


    【解决方案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开发的新手。在哪里可以找到您的提案示例?
    猜你喜欢
    • 2013-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-15
    • 2013-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多