다른 많은 파일을 사용자에게 표시하는 iOS 응용 프로그램에서 작업 중입니다. 비디오 및 오디오 파일에서 html 및 Office/iWorks 파일. 나는 QLPreviewController를 서브 클래 싱 (subclassed)했으며,이 파일들을 표시하기 위해 그것을 사용하고 싶다. 개체를 만들고, 파일의 URL을 전달하고, 부모 View Controller에서 WebView의 프레임을 대체 할 ViewController의보기 프레임을 설정합니다. : 뷰 디버그 계층 구조 도구를 사용하여iOS 10, QLPreviewViewController가 파일을 표시하지 않습니다.
else if (QuickLookViewController.canOpenFile(previewItem: contentUrl as NSURL)) {
hideControls()
quickLook.contentURLs = [contentUrl as NSURL]
//add the QuickLookController's view to content display using webview's frame
self.view.addSubview(quickLook.view)
quickLook.view.frame = webview!.frame
quickLook.reloadData()
, 그것은 quickLook.backgroundColor = UIColor.black 그냥 테스트 설정이 올바르게 설정보기뿐만 아니라 보여줍니다.
은 그래서 어쩌면 내가 파일이 있는지 확인하기 위해 몇 가지 검사를 추가 QuickLookController의 viewDidLoad에의하므로, 다운로드 및 저장 파일에 액세스에 문제가 있다고 생각 :super.viewDidLoad()
print("\nContent URL: \(contentURLs[0])")
print("\nContent URL Path: \(contentURLs[0].path!)")
self.delegate = self
self.dataSource = self
var error : NSError?
print("\nis reachable: \(contentURLs[0].checkResourceIsReachableAndReturnError(&error))")
if (error != nil) {
print("is reachable error -> \(error.debugDescription)")
}
print("\ndoes exist: \(FileManager.default.fileExists(atPath: contentURLs[0].path!))")
print("\nCan open: \(QuickLookViewController.canOpenFile(previewItem: contentURLs[0]))")
및 로그 문
Content URL: file:///var/mobile/Containers/Data/Application/B9D5C288-F889-4513-941E-2564F1C12F02/Documents/588c5a1e-dffe-47a8-9824-bc19463aafc2/d88a8dd5-40d1-4fdb-adf3-10fce1f6bf1f/fd73c162-5ac3-4269-8573-9c0b61bef7a7/fd73c162-5ac3-4269-8573-9c0b61bef7a7.pages
Content URL Path: /var/mobile/Containers/Data/Application/B9D5C288-F889-4513-941E-2564F1C12F02/Documents/588c5a1e-dffe-47a8-9824-bc19463aafc2/d88a8dd5-40d1-4fdb-adf3-10fce1f6bf1f/fd73c162-5ac3-4269-8573-9c0b61bef7a7/fd73c162-5ac3-4269-8573-9c0b61bef7a7.pages
is reachable: true
does exist: true
Can open: true
나는 심지어는 llbd 문으로! '포 self.view.superview .frame'를 사용하여 QuickLook에서의 수퍼가 설정되어 있는지 확인하여있는 viewDidLoad에 중단 점을 사용하고, 다시 접수 : 내가 예상대로 나오지 내가 예상 한 결과.
동일한 클래스를 앱의 다른보기 스택에 사용하고 클릭 한 파일을 표시하므로 나에게 의미가 없습니다. 두 가지 용도의 유일한 차이점은, 두 번째는 모달로 제공되는 viewController에서 quickLook의 뷰를 제공한다는 것입니다.