AFAIK, если вы добавите UINavigationController в UIView с помощью кода, он не будет отправлять эти сообщения в свои подпредставления по умолчанию.Это будет сделано только в том случае, если UINavigationController сам получит эти вызовы.Возможно, это ваша проблема (я не знаю, как вы настроили представление).
Так что, при добавлении представления UINavigationController, обязательно отправляйте ему эти сообщения вручную.
UINavigationController *navigationController = [UINavigationController alloc] initWithRootViewController:rootViewController];
[navigationController viewWillAppear:NO];
[aView addSubview:navigationController.view];
[navigationController viewDidAppear:NO];
По крайней мере, это то, что я нашел во время разработки.Я долго искал это, и я до сих пор не понимаю, что за этим стоит.