Ваш код кажется совершенно неправильным ...
Во-первых, вы никогда не должны звонить viewWillAppear
- это система, уведомляющая ваш контроллер о появлении представления.
Во-вторых, просто вызов :
[self.navigationController popViewControllerAnimated:YES];
перейдет к предыдущему контроллеру представления в стеке, или:
[self.navigationController popToRootViewControllerAnimated:YES];
перейдет к контроллеру Root.
В обоих Случаи, viewWillAppear
- это , вызываемые системой, когда представление, хорошо, появится.