2015-08-05 1 views
5

У меня есть корневая раскадровка с кнопкой, которая толкает ViewControllerB.Почему: «Попытка загрузить .. while deallocating ...: UISearchController:«

ViewControllerB имеет контроллер сортировки UISortController.

ViewControllerB имеет «обратный» метод, управляемый корневым навигационным контроллером.

Я получаю следующее предупреждение:

Attempting to load the view of a view controller while it is deallocating is not allowed and may result in undefined behavior (<UISearchController: 0x7ff10258ba60>)

Apple's sample Я использовал (членство обязательно), чтобы добавить новый UISearchController.

Кто-нибудь сталкивался с этим? Как мне его решить?

ответ

1

Я бы рекомендовал использовать Раскадровка UNWIND перетекает вместо: https://developer.apple.com/library/ios/technotes/tn2298/_index.html

Этот проницательный пост также имеет множество очень полезных деталей реализации:

What are Unwind segues for and how do you use them?

+0

Хорошая идея. Благодарю. Я попробую это сейчас. –

+0

Я не уверен, как это реализовать. Задняя функция фактически контролируется главным контроллером навигации VC. Должен ли я просто переопределить это своей собственной кнопкой? –

+0

Обратите внимание, что я обновил свой вопрос, чтобы он был более точным. –

1

Я наткнулся на сообщение об ошибке же консоли , но учтите следующее в отношении моего проекта Xcode:

  • Сегменты навигационным контроллерам должны оставаться из-за их использования с контроллером с разделенным изображением (контроллеру подробного представления);
  • (и в соответствии с комментариями @AndrewEbling выше) код не требует разматывания, поскольку контроллер навигации управляет (пропорционально) задачами автоматически;
  • Кроме того, код не требует развязки, поскольку блоки используются для установки свойств в контроллере родительского представления.

Благодаря комментариев Leehro и Clafou в this SO answer консольном сообщении об ошибке было подавлено с помощью следующей строки кода в viewDidLoad (обратите внимание, что нет никакой необходимости, чтобы вставить это в dealloc):

[self.searchController loadViewIfNeeded]; (примечание доступный от iOS 9).

Смежные вопросы