Вы правы, viewWillAppear немного особенный, обычно он вызывается автоматически, но в некоторых случаях, в том числе, когда вы добавляете представление контроллеров представления вручную (view addSubview :), а также при добавлении этого в качестве контроллера представления в UITabBarController
или UINavigationCnotroller
(из которых у вас есть оба!) Это не передается.
Это, однако, только для корневого представления, когда вы перемещаетесь (возможно, с помощью контроллера навигации) назад и вперед, это корневое представление viewWillAppear будет запускаться как некоторая точка.
Короче говоря, если вам нужно реализовать что-то в viewWillAppear в этих случаях, вы должны сообщить об этом сами, когда будете знать, что это будет представлено. Вы можете справиться с этим делом в вашем контроллере представления, прочитайте следующую статью по этому вопросу:
http://www.touchthatfruit.com/viewwillappear-and-viewdidappear-not-being-ca
Удачи.