【问题标题】:Quicklook/QLPreviewController delegate methods are not calling in iOS 10 Xcode 8Quicklook/QLPreviewController 委托方法未在 iOS 10 Xcode 8 中调用
【发布时间】:2017-01-07 10:29:51
【问题描述】:

目前我正在 iOS10 中测试我当前的版本。我正在使用 Xcode 8 beta 6 进行测试。此处 Quicklook/QLPreviewController 委托方法未调用。 此代码集已在 XCode 7 和 iOS 9.3 版本中使用。我在 Apple Developer 论坛中检查了这个问题。但找不到答案。有人解决了这个问题吗? (我使用的是 Objective-C)

如何在 XCode 8 (iOS 10) 中使用 Quicklook/QLPreviewController?

//----------------- iOS 10 的解决方案(预览器作为子视图)------------------ -

当您将预览器添加为子视图时会出现此问题。然后我们主要在 iOS 9.3 及以下版本中使用下面的代码行。

[self addChildViewController:previewer];
self.view addSubview:previewer.view];
[previewer didMoveToParentViewController:self];

在 iOS 10 中的问题是由于以下代码行造成的。

[self addChildViewController:previewer];

对于 iOS 10,我们需要检查版本并添加上面的代码行。下面是工作代码集。

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

    previewer.dataSource = self;
    previewer.delegate = self;
    // To avoid iOS 10 previewer issue.
    if (SYSTEM_VERSION_LESS_THAN(@"10.0")) {
        [self addChildViewController:previewer];
    }
    CGFloat width = self.view.frame.size.width;
    CGFloat height = self.view.frame.size.height;
    previewer.view.frame = CGRectMake(0, 102, width, height-300);
    [self.view addSubview:previewer.view];

    [previewer didMoveToParentViewController:self];

【问题讨论】:

  • 谢谢,也适用于 Xamarin.iOS。

标签: objective-c ios10 xcode8 quicklook qlpreviewcontroller


【解决方案1】:

我也遇到了这个问题,但是我无法通过你的解决方案解决这个问题.. 这是我的代码:

QLPreviewController *preview = [[QLPreviewController alloc] init];
[preview setDataSource:self];
[preview setDelegate:self];

if(SYSTEM_VERSION_LESS_THAN(@"10.0"))
{
    [self addChildViewController:preview];
}

[preview didMoveToParentViewController:self];
[self.view addSubview:preview.view]; 

【讨论】:

  • @ridvankucuk 你还有问题吗?
猜你喜欢
  • 2017-03-02
  • 2017-03-28
  • 2016-07-16
  • 2017-02-09
  • 2015-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多