Я предполагаю, что у вас установлено свойство browser.delegate для вашего пользовательского UIViewController. Когда вы нажимаете кнопку «Назад», этот контроллер извлекается из стека навигации и освобождается, в результате чего ваш browser.delegate указывает на освобожденную память. Когда ваша страница завершает загрузку, UIWebView вызывает метод для своего делегата, который больше не существует, поэтому вы получаете EXC_BAD_ACCESS.
Чтобы избежать подобных ошибок, каждый раз, когда вы устанавливаете свойство делегата объекта, убедитесь, что вы установили для этого свойства значение nil в dealloc, например:
- (void)dealloc {
self.browser.delegate = nil; // Prevents EXC_BAD_ACCESS
self.browser = nil; // releases if @property (retain)
[super dealloc];
}
Поскольку nil молча глотает все полученные сообщения, это предотвратит вашу EXC_BAD_ACCESS.