2011-12-14 71 views
0

此代碼在第一次觸摸時起作用。預覽開始顯示(標題,完成,操作和空白頁),然後再次調用previewController:(QLPreviewController *)previewController previewItemAtIndex:(NSInteger)index。這一次[self.resultsController objectAtIndexPath:selectedIndexPath];返回零 - 我的猜測是不再選擇條目。 index是正確的,在1QLPreviewController和NSFetchedResultsController objectAtIndexPath返回零

過程

- (id)previewController:(QLPreviewController *)previewController previewItemAtIndex:(NSInteger)index 
{ 
    NSIndexPath *selectedIndexPath = [self.tableView indexPathForSelectedRow]; 
    Manuals *manuals = [self.resultsController objectAtIndexPath:selectedIndexPath]; 
    NSURL *vUrl = [self locateUrl:[NSURL URLWithString:manuals.Url] ofType:[manuals.Url pathExtension]];  
    return vUrl; 
} 

如果我忽略了的異常 - 預覽繼續顯示該文檔。

我也儘量保持良好的最後返回selectedIndexPath,但隨後收到錯誤:用我的resultsController對象只有在指數傳遞

我如何獲得:-[__NSArrayM indexAtPosition:]: unrecognized selector sent to instance 0x1cd52800

問題

回答

0

問題出在numberOfPreviewItemsInPreviewController:previewController。我返回[resultsController count],而不是我想要預覽的文件數量。當previewController試圖訪問接下來的幾個對象時,它返回nil。

// Returns the number of items that the preview controller should preview 
- (NSInteger)numberOfPreviewItemsInPreviewController:(QLPreviewController *)previewController 
{ 
    return 1; 
} 
0

我不知道這是否回答你的問題,但你可以使用:

[previewController setCurrentPreviewItemIndex:0]; 

設置要預覽當前項目。

+0

我沒有在我的代碼中調用[previewController。它被委託。我只是試圖返回正確的文件://URL QLPreviewController正在請求。 – Kent 2011-12-14 17:37:15