Как сбросить представление uinavigation для отображения корневого контроллера, когда пользователь нажимает на него назад в приложении панели вкладок - PullRequest
0 голосов
/ 25 февраля 2010

Как сбросить представление uinavigation для отображения корневого контроллера, когда пользователь нажимает на него назад в приложении панели вкладок

Эй,

Просто интересно, как бы я это сделал. У меня есть navcontroller в моем делегате вместе с контроллером панели вкладок, и каждый раз, когда пользователь нажимает на другую вкладку, я хочу, чтобы представление root-корня на контроллере навигации отображалось, если и когда они нажимают на вкладку, которая содержит uinavcontroller.

Имеет ли это смысл?

Ник

Ответы [ 3 ]

2 голосов
/ 25 февраля 2010

[self.navigationController popToRootViewControllerAnimated: YES];

Или НЕТ, если вы не хотите, чтобы это оживляло.

Таким образом, все кэшированные представления все еще там, то есть вы не «удаляете / освобождаете» все представления выше корневого представления, если только навигационный контроллер не сочтет это необходимым.

Надеюсь, это было то, что Вы искали ..

1 голос
/ 25 августа 2015

поместите код в appdelegate.m

if ([viewController isKindOfClass:[UINavigationController class]]) {
    UINavigationController *nav = (UINavigationController *)viewController;
    [nav popToRootViewControllerAnimated:NO];
}
0 голосов
/ 04 февраля 2014

При использовании метода делегата UITabBar вы должны отложить вызов popToRootViewControllerAnimated.

-(void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
{
if ([self.selectedViewController isKindOfClass:[UINavigationController class]]) {
    UINavigationController *view=(UINavigationController *)self.selectedViewController;
    [view performSelector:@selector(popToRootViewControllerAnimated:) withObject:nil    afterDelay:.5];
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...