在Quicklook,Objective C之后处理完成按钮

时间:2017-06-19 00:37:39

标签: ios objective-c quicklook

这一直是当时最愚蠢的问题,但我还没有得到它。 我创建了一个Quicklook,显示很好。当我点击完成按钮时,它会重新出现。如何拦截完成按钮?或者更一般地说,控制我所假设的是导航栏中显示的内容。以下是相关代码:

- (void)viewDidAppear:(BOOL)animated
{

    [super viewDidAppear:animated];

    /*
     *  get the path to the pdf resource.
     */

    NSString *path = [[NSBundle mainBundle] pathForResource:@"article" ofType:@"pdf"];
    NSURL *docURL = [NSURL fileURLWithPath:path];


    /*
     *  create the Quicklook controller.
     */

    QLPreviewController *qlController = [[QLPreviewController alloc] init];

    PreviewItem *item = [[PreviewItem alloc] initPreviewURL:docURL WithTitle:@"Article"];
    self.pdfDatasource = [[PDFDataSource alloc] initWithPreviewItem:item];
    qlController.dataSource = self.pdfDatasource;


    /*
     *  present the document.
     */

    [self presentViewController:qlController animated:YES completion:nil];
}

我认为我错过了一些明显的东西。

谢谢你, 肯

2 个答案:

答案 0 :(得分:0)

您是否尝试将ViewDidAppear代码移至ViewDidLoad?当您单击“完成”按钮时,除ViewDidLoad外,Controller的所有视图都将再次加载。因此quicklook视图再次出现。试试

答案 1 :(得分:0)

诀窍是将所有内容都回滚到原始的viewcontroller中。这样,当我点击完成按钮时,它会回到原始的viewcontroller,这正是我想要的。因此,我只是将调用合并到我的主视图控制器中,而不是单独的类。我怀疑仍然有一种方法可以狡猾地使用代理,但是如果其他人遇到同样的问题,这是一个对我有用的解决方案。

感谢您的关注和帮助。 肯