Подтвердить что ты не робот

Ошибка в TextView с номером телефона обнаружения IOS 9

Я тестирую свое приложение на iPod Touch под управлением iOS 9 (на iOS 8.4 он работал для других функций: FaceTime, копирование в контакты и т.д.). У меня есть текстовое представление с обнаружением номера телефона, и я получаю следующую ошибку:

Предупреждение: попытка представить < _UIRotatingAlertController: 0x16250e00 > , чей вид не находится в иерархии окон!

Ошибка утверждения в - [UITextView startInteractionWithLinkAtPoint:],/BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit/UIKit-3505.16/UITextView_LinkInteraction.m:377

Любое исправление к этому?

4b9b3361

Ответ 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 мы отлично работали.

Ответ 2

Это похоже на ошибку, которую недавно нам пришлось исправлять для PSPDFKit, где представление листов не срабатывало, когда rootViewController был уже представляя другой контроллер. (Возможно, ваш rootViewController не установлен?)

Здесь вы можете прочитать исходный код. Это может помочь вам выяснить, где проблема для вас:

https://gist.github.com/steipete/b00fc02aa9f1c66c11d0f996b1ba1265

И, пожалуйста, обманите rdar://26295020, так что это, надеюсь, будет исправлено вовремя для iOS 10. (Ошибка существует с iOS 8 и был впервые представлен на iOS 8b5.)