Позвольте говорят, вот мое расположение стека
View3 --> Top of the stack
View2
View1
HomeView --> Bottom of the stack
Таким образом, я нахожусь в View3
теперь, если я нажимаю Home
кнопка, я хочу загрузиться HomeView
, подразумевать, что я должен появиться View3
, View2
, и View1
. Но если я появляюсь View3
, View2
будет отображен. Я не хочу это. Я хочу View3
, View2
, и View1
будьте удалены, и HomeView
будет отображен. Какая-либо идея, как?
Вы можете использовать popToRootViewControllerAnimated: для доступа к корневому контроллеру представления. Это приведет к появлению всех контроллеров представления в стеке, кроме контроллера корневого представления. В вашем случае это будет HomeView .
[self popToRootViewControllerAnimated:YES];
Чтобы перейти к определенному представлению в стеке, вы можете использовать popToViewController: animated: Предполагая, что вы хотите открыть третий контроллер представления (снизу вверх). В вашем случае это будет view2 :
NSArray* viewControllersInStack = self.navigationController.viewControllers;
UIViewController* targetViewController = [viewControllersInStack objectAtIndex:2];
[self.navigationController popToViewController:targetViewController animated:YES];
использовать ...
[self.navigationController popToRootViewControllerAnimated: ДА];
Используйте popToViewController
[self.navigationController popToViewController:homeView animated:YES];