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 в атрибутной строке текстового представления. Я думаю, что изображение было шире, чем доступное содержимое ячейки таблицы. Когда прокрутка выключена, они выглядят менее масштабными.