IOS 9 Segue вызывает приложение для замораживания (без сбоев или ошибок)

Я работаю над этим приложением уже несколько месяцев и с тех пор, как помню, у меня никогда не было проблемы с segues. Код не изменяется с точки зрения вызова performSegueWithIdentifier, но поскольку мое последнее обновление для Xcode 7 и iOS 9, я не смог решить эту проблему.

Я пробовал:

  • Кнопка удаления и создание новой кнопки w/segue
  • Использование прямого перехода из кнопки для просмотра без использования performSegueWithIdentifier
  • Кнопка соединения с новым пустым представлениемController

Когда я нажимаю кнопку, никакие функции начальной загрузки не вызываются в целевом VC (Ex: ViewDidLoad, ViewWillAppear и т.д.). Когда я соединяю его с пустым представлением, segue отлично работает с тем же кодом на месте.

Так как код никогда не останавливается или не разбивается, и просто кажется, что он "замораживается" на месте, все еще работая на Xcode, я не могу даже сузить это до того, что вызывает проблему. У меня есть аналогичный segue, который также вызывается из другой кнопки на том же ViewController, у которого нет никаких проблем.

Любые мысли по этому поводу очень ценятся!

EDIT: Я сузил проблему до UITextView, вызвав проблему. После удаления текстовых просмотров страница загружается штрафом через segue. Интересно, что изменилось между iOS 8 и iOS 9 с точки зрения UITextView, поскольку мне придется удалить текстовые представления и полностью добавить новые текстовые представления.

Ответ 1

Таким образом, в большинстве случаев segue зависал из-за UITextView, который я использовал в destinationViewController. Исправлена ​​проблема:

  • Удалить все UITextView
  • Добавить новый UITextView
    • вы должны оставить текст, наложенный на лорм по умолчанию, и программно изменить его в viewDidLoad()

Это было исправление для меня, и из исследования, которое я сделал по этой проблеме, похоже, это ошибка в iOS 9 и Xcode 7.

Ура!


ПРИМЕЧАНИЕ. Удаление текста в UITextView (или его дольше, чем ~ 12 символов) достаточно, чтобы обойти его, нет необходимости удалять и воссоздавать их. Это исправлено в Xcode 7.1.1 и более поздних версиях.

Ответ 2

Я столкнулся с той же проблемой, и исправления в этом сообщении (Xcode 7 crash: [NSLocalizableString length] 30000) решили проблему для меня.

Во-первых, включить локализацию, отличную от базы для раскадровки (см. fooobar.com/questions/454682/...)

Во-вторых, чтобы отключить базовую локализацию (см. fooobar.com/questions/454682/...)

Ответ 3

Я думаю, что у меня такая же проблема: у меня есть UITabelView с ячейками, созданными из файла nib, когда пользователь нажимает на ячейку, вызываемый этим методом:

введите описание изображения здесь

и когда у меня есть следующий метод prepareForSegue:: сбой приложения: введите описание изображения здесь

если я удаляю строку 129 Все в порядке, метод prepareForSegue:: открыть правый вид, а ярлык - имя контакта отображается с текстом по умолчанию. Если я модифицирую метод следующим образом, подготовьтеForSegue:: получите именно то, что вы ожидаете, без каких-либо ошибок:

введите описание изображения здесь

сообщите мне, если вы также получите тот же результат

Ответ 4

Любой, кто сталкивается с этой проблемой, решил ее, отключив опцию "Оптимизировать рендеринг для окон" в окне "Отладка симулятора". Я уже пробовал все вышеперечисленные ответы, но не смог решить проблему.

Ответ 5

В методе в первом viewController, где вы активируете segue, у вас есть beginIgnoringInteractionEvents в любом месте? Если так, экран, который вы перейдете, будет заморожен и будет игнорировать события взаимодействия, как вы описываете. Если это так, вы можете исправить это, добавив метод endIgnoringInteractionEvents перед вашим методом segue:

UIApplication.sharedApplication(). EndIgnoringInteractionEvents()                               self.performSegueWithIdentifier( "editItemToMyGearSegue", отправитель: self)

Ответ 6

Я понимаю, что это старая тема, но, похоже, все еще актуальна. Я столкнулся с той же проблемой в Xcode 9, iOS11. Мои UITextViews встроены в UITableViewCells. Те же симптомы, что описаны здесь. Трюки с текстом по умолчанию и заполнителями ничего не сделали для меня, но я решил это, отключив индикаторы прокрутки для текстового представления в xib. По умолчанию они были включены, хотя и не используются.

Изменить: это, вероятно, важная деталь... в видах, которые были повесили все, было изображение NSTextAttachment в атрибутной строке текстового представления. Я думаю, что изображение было шире, чем доступное содержимое ячейки таблицы. Когда прокрутка выключена, они выглядят менее масштабными.