【问题标题】:QLPreviewController only shows a single fileQLPreviewController 仅显示单个文件
【发布时间】:2012-07-09 11:19:37
【问题描述】:

我正在使用 QLPreviewController 来显示一组文件。但是,它只显示第一个,我似乎无法滑动或做任何事情来显示第二个。我究竟做错了什么?我必须手动设置吗?如果是这样 - 我将如何去做?

这是来自我的 AppDelegate.m:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // normal viewcontroller init here 

    [self showPreview] ;

    return YES;
}

NSArray* documents ;
QLPreviewController* preview ;

- (void) showPreview
{
    documents = [[NSArray alloc] initWithObjects: @"photo" , @"photo2" , nil ] ;

    preview = [[QLPreviewController alloc] init];
    preview.dataSource = self;
    preview.delegate = self;

    preview.view.frame = [[UIScreen mainScreen] bounds];
    //save a reference to the preview controller in an ivar
    //  self.previewController = preview;
    //refresh the preview controller
    [preview reloadData];
    [[preview view] setNeedsLayout];
    [[preview view] setNeedsDisplay];
    [preview refreshCurrentPreviewItem];
    preview.view.userInteractionEnabled = YES;

    //add it  
    [self.viewController.view addSubview:preview.view];
}

我还在同一个 AppDelegate.m 文件中声明了两个回调函数:

- (id <QLPreviewItem>) previewController: (QLPreviewController *) controller previewItemAtIndex: (NSInteger) index
{
    NSString* filename = [documents objectAtIndex:index] ;      //  @"photo" ; 
    NSURL* returnURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource: filename ofType:@"jpg" ]] ;

    return returnURL ;
}

- (NSInteger) numberOfPreviewItemsInPreviewController: (QLPreviewController *) controller
{
    return [documents count];
}

【问题讨论】:

    标签: objective-c ios events qlpreviewcontroller


    【解决方案1】:

    您的显示错误。 QLPreviewController 是一个 UIViewController,这意味着您基本上有两种显示方式:

    1. 将其推入您的 UINavigationController。
    2. 模态显示(这可以在有或没有 UINavigationController 的情况下完成 - 取决于您是否需要导航栏)。

    如果您选择选项 2,您将获得用于在项目之间切换的“免费”导航箭头。 对于选项 1,您需要自己创建箭头。

    以下内容摘自QLPreviewController 文档:

    如果列表中有多个项目,则以模态呈现(即 是,全屏)控制器显示导航箭头让用户 在项目之间切换。对于推送的 Quick Look 预览控制器 使用导航控制器,您可以在 用于在导航列表中移动的导航栏。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多