質問

マスターが文書のリストを表示するマスター詳細アプリは、これらの文書のプレビューが表示されます。

ストーリーボードでは、 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];
    }
}
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top