В настоящее время не существует способа скрыть встроенные элементы управления навигацией, поэтому я использую reloadRootControllersWithNames: contexts: и передаю любое постоянное состояние приложения через контекст, после чего я возвращаюсь обратно к предыдущему контроллеру при навигации по нему. Это покажет анимацию загрузки страницы, а не push-анимацию, но она работает.
В контроллере 1:
- (void)awakeWithContext:(id)context {
[super awakeWithContext:context];
if (context) {
// Restore state from context and update any UI
[self.controllerVar1 = context objectForKey:@"controllerVar1"];
[self.controllerVar2 = context objectForKey:@"controllerVar2"];
}
}
// Call from method that is initiating navigation
[Controller1 reloadRootControllerWithNames:@[ @"Controller2" ] contexts:@[ @{ @"controllerVar1" : self.controllerVar1, @"controllerVar2" : self.controllerVar2 } ]];
В контроллере 2:
- (void)awakeWithContext:(id)context {
[super awakeWithContext:context];
self.previousControllerState = context;
}
- (void)navigateBack {
[Controller2 reloadRootControllerWithNames:@[ @"Controller1" ] contexts:@[self.previousControllerState]];
}
See http://stackoverflow.com/questions/28019256/how-to-hide-navigation-bar-back- кнопка/30907556 # 30907556 – AMAN77