25

ログにこのエラー メッセージが表示されますが、一貫してではありませんがSLComposeViewController、Twitter や Facebook の共有シートを開いたときに発生します。私は新しい iOS 8 API を使用しておらず、iOS 8 で既存のコードをテストしているだけです。Cocoa Touch SDK の他のモーダル ビュー コントローラーを使用すると、他の人がこの問題を抱えており、クラッシュすることさえありました。

LaunchServices: invalidationHandler が呼び出されました

iOS 8 でSLComposeViewController取るべき新しい予防策はありますか? UIActivityViewController他に考慮すべきことはありますか?

4

6 に答える 6

2

UIDocumentInteractionController で同様の問題が発生しました。その外側をタップして閉じるか、別のアプリを選択してドキュメントを開くと、「LaunchServices: invalideationHandler called」というコンソール メッセージが 2 回表示されてクラッシュします (iOS 8 のみを使用)。 .

回避策は、呼び出しをpresentOpenInMenuFromRect:inView:animatedメイン キューに追加することです。

dispatch_async(dispatch_get_main_queue(), ^() {

[self.documentInteraction presentOpenInMenuFromRect:theRect inView:self.view animated:YES];

});
于 2014-10-22T19:21:28.527 に答える
0

を定義する必要がある場合もありますsourceRect。次のコードを使用して、tableView から SLComposeViewController を表示しました。

if ([controller respondsToSelector:@selector(popoverPresentationController)]) {
    //get rect for this row in table
    CGRect frame = [self.tableView rectForRowAtIndexPath:indexPath];

    //convert table row frame to view reference
    CGRect frameInView = [self.tableView convertRect:frame toView:self.view];

    [controller popoverPresentationController].sourceRect = frameInView;
    [controller popoverPresentationController].sourceView = self.view;
}
于 2014-09-18T05:36:32.327 に答える