QLPreviewControllerは文書を表示しないことがあります
-
27-12-2019 - |
質問
マスターが文書のリストを表示するマスター詳細アプリは、これらの文書のプレビューが表示されます。
ストーリーボードでは、 VistapreView というUIViewを描きました。 私はそれを宣言しました:
@property (weak, nonatomic) IBOutlet UIView *vistaPreview;
.
.m
で使用する変数QLPreviewController* previewVC;
も宣言しました
.mでは、ユーザーがリスト内の1つの文書をタッチしたときに呼び出される方法があります。メソッドはVistapReviewのビューでqlpreviewControllerを追加します。
previewVC = [[QLPreviewController alloc] init];
previewVC.dataSource = self;
previewVC.delegate = self;
[self addChildViewController:previewVC];
CGFloat w= self.vistaPreview.frame.size.width;
CGFloat h= self.vistaPreview.frame.size.height;
previewVC.view.frame = CGRectMake(0, 0,w, h);
[self.vistaPreview addSubview:previewVC.view];
[previewVC didMoveToParentViewController:self];
.
これは、リスト内のいくつかの文書をクリックした後、次のエラーを取得します:
Domain=XPCObjectsErrorDomain Code=2 "The operation couldn’t be completed.
.
アプリがクラッシュしない、ドキュメントの名前(コンテンツではなく)のQLPreviewControllerビューにメッセージが表示されます。リスト内の別の文書をクリックすると、アプリは文書の内容を表示する作業に戻ります。
それを解決する方法の任意の考え?
事前にありがとう!
解決
問題はQlPreviewControllerの子の金額でした。 そのため、QlPreviewControllerの子を探し、それらをParentViewControllerから削除します。
NSArray *children = [self childViewControllers];
for (int i = 0; i<[children count]; i++) {
NSString *classString = [NSString stringWithFormat:@"%@", [[children objectAtIndex:i] class]];
if ([classString isEqualToString:@"QLPreviewController"]) {
[[children objectAtIndex:i] removeFromParentViewController];
}
}
. 所属していません StackOverflow