Сценарий, который вы описываете, не вызывает плохого доступа. Однако, если вы не будете внимательно относиться к описанному сценарию, вы получите плохой доступ. Поскольку вы не показали мне никакого кода, я не могу сказать вам, что это ваша проблема, но это очень распространенная проблема.
Когда вы получаете предупреждение памяти и ваше представление не загружено, вы, вероятно, выпускаете кучу вещей. В дополнение к освобождению переменных вы также должны установить их на ноль. В противном случае вы рискуете отправить сообщения освобожденным объектам, что приведет к плохому доступу.
Опять же, я не могу знать, что это ваша проблема, но обычно это проблема.
РЕДАКТИРОВАТЬ: Поскольку вы, похоже, считаете, что self.navigationController
не существует (вероятно, существует), я расскажу вам о чем-то, называемом NSZombie:
NSZombie сообщит вам, какому освобожденному объекту отправляется сообщение (иначе EXC_BAD_ACCESS). Это очень полезный инструмент, когда вы получаете EXC_BAD_ACCESS, поэтому научитесь его использовать.
Чтобы активировать NSZombie, выполните следующие действия:
- Получить информацию об исполняемом файле.
- Перейти на вкладку аргументов.
- В разделе «Переменные, которые должны быть установлены в среде:» добавить:
Имя: NSZombieEnabled
Значение: ДА
Затем запустите ваше приложение как обычно, и когда оно выйдет из строя, оно должно сообщить вам, какой освобожденный объект получил сообщение.