iOS 9 を実行している iPod Touch でアプリをテストしています (iOS 8.4 では FaceTime、連絡先へのコピーなどの他の機能は動作していました)。電話番号検出機能を備えたテキストビューがあり、次のエラーが表示されます。
警告: ビューがウィンドウ階層にない <_UIRotatingAlertController: 0x16250e00> を表示しようとしました。
-[UITextView startInteractionWithLinkAtPoint:]、/BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit/UIKit-3505.16/UITextView_LinkInteraction.m:377 でアサーションに失敗しました
これに対する修正方法はありますか?
ベストアンサー1
完璧な解決策ではありませんが、非常にシンプルで、困っている開発者の助けになるかもしれません。
- (BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL inRange:(NSRange)characterRange {
[[UIApplication sharedApplication] openURL:URL];
return NO;
}
長押しすると、[コピー]、[URL を開く]、[キャンセル] ポップオーバーは表示されなくなりますが、少なくとも以前と同じように URL を開くことができるはずです。iOS 9 では、これにより、標準 URL のアプリ内でブラウザー ウィンドウが開きます (これは便利です)。
これは Apple のバグのようです (すでにレーダーに投稿されています)。
Apple が新しいモーダル アラート ビューを表示しようとしているため、モーダル ビューでリンクを開こうとすると、非常によく似たエラーが発生していました。モーダル ビュー外のデータ検出は、iOS 9 では問題なく機能しました。