스토리 보드에 새로운보기 컨트롤러를 만들었습니다. ListViewController에 연결했습니다. ListViewController는 aboutDict[String:Any]
에 올바른 데이터를 채 웁니다. fileURLs[]
가 구축되고 func numberOfPreviewItems(in: QLPreviewController) -> Int
를 호출 - 디버거가 fileURLs[]
은 다음과 같이 예상됩니다 보여줍니다 self.fileURLs의previewController previewItemAt가 호출되지 않습니다. iOS 10, swift 3, simulator
인쇄 설명 : ▿ 1 요소 - 0 : 파일 : /// 사용자/켄트/라이브러리/개발자/CoreSimulator/디바이스/5E23825C-DF99-455A-BEB1-F73398E7759F/데이터/용기/번들/애플리케이션/307ED7DF-C07C-4C0A-BA78-938BABE7C22C/WINSystemInfo.app/ID-51A_E_PLUS2.pdf`
하지만 func previewController(_ controller: QLPreviewController, previewItemAt index: Int) -> QLPreviewItem
및 func previewController(_ controller: QLPreviewController, shouldOpen url: URL, for item: QLPreviewItem) -> Bool
이 호출되지 않습니다.
네비게이션 스택에 뒤로 버튼의 정확한 이름과 "미리보기 할 파일이 없습니다"라는 텍스트가있는 회색 페이지가있는 좋은 ViewController가 있습니다.
'뒤로'버튼을 누르면 func previewControllerWillDismiss(_ controller: QLPreviewController)
이 호출됩니다. 그래서 일부의 대리자 및 데이터 소스 함수가 호출되고 있습니다.
class FileViewController: QLPreviewController, QLPreviewControllerDelegate, QLPreviewControllerDataSource {
var aboutDict = [String: Any]()
// QuickLook data
var fileURLs = [QLPreviewItem]()
// MARK: - Lifecycle
override func viewDidLoad() {
super.viewDidLoad()
let filename = aboutDict["filename"] as! String?
let filetype = aboutDict["filetype"] as! String?
title = aboutDict["title"] as! String?
dataSource = self
delegate = self
if let fileUrl = Bundle.main.url(forResource: filename, withExtension: filetype, subdirectory: nil, localization: nil)
{
let filePreview = fileUrl as QLPreviewItem
fileURLs.append(filePreview)
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
// MARK: - Preview controller datasource functions
func numberOfPreviewItems(in: QLPreviewController) -> Int {
return fileURLs.count
}
func previewController(_ controller: QLPreviewController, previewItemAt index: Int) -> QLPreviewItem {
return fileURLs[index]
}
// MARK: - Preview controller delegate functions
func previewControllerWillDismiss(_ controller: QLPreviewController) {
debug("previewControllerWillDismiss")
}
func previewController(_ controller: QLPreviewController, shouldOpen url: URL, for item: QLPreviewItem) -> Bool {
return true
}
}
내가 무엇을 놓치고 :
나는 단순한 뭔가 빠진해야는 ...
내가 아래에있는 내 클래스 FileViewController.swift을 첨부?감사합니다.
가 해결 되었습니까? –
가장 좋은 것은 버그 리포트 (bugreport.apple.com)를 제출하는 것이므로 실제로 버그인지 여부를 확인할 수 있습니다. – Raffael
sebastian-roth - 여전히 작동하지 않습니다. – Kent