Был ли текущий ViewController помещен в стек навигации?
self.navigationController
возвращает контроллер навигации только в том случае, если контроллер представления находится в его стеке.Это свойство равно nil, если не удается найти контроллер навигации.
Отладка и проверка его не ноль.Установите некоторые точки разрыва и посмотрите, где находится точка отказа.Является ли dismissView: даже вызывается?Какая часть вашего кода [[self navigationItem] setRightBarButtonItem:button];
?