2015-10-16 2 views
1

Я ввел третий viewController из sencond viewController, но я не хочу возвращаться ко второму viewController, мне нужно вернуться к моему первому viewController напрямую , как я могу реализовать that.my английский плохой, надеюсь, что вы можете понять мой вопрос, thxКак я могу вернуться к первому viewController из третьего viewController

ответ

0

Попробуйте это -

В настоящее время вы находитесь в ThirdViewController, и сказать имя класса вашего FirstViewController является «FVC».

NSArray *allViewControllers = [self.navigationController viewControllers]; 
for (UIViewController *aViewController in allViewControllers) { 
    if ([aViewController isKindOfClass:[FVC class]]) { 
     [self.navigationController popToViewController:aViewController animated:YES]; 
    } 
} 

Это должно сделать трюк

EDIT -

Как цит хотел объяснить это, как это.

В вашем стеке навигации есть в настоящее время - VC1, VC2, VC3 (теперь вы @ VC3). Далее при вызове метода [self.navigationController popToViewController:vc1], навигационному стек имеет VC1, как вы выскакивают из VC3 в VC1, таким образом, выкатились все в ВК между ними, тем самым освобождая память

+0

если я использую этот метод, как я могу освободить второй viewController. –

+0

Проверьте редактирование plz, я надеюсь, что вы получите концепцию, :) –

+0

Я получаю это, thx :) –

0

вы можете использовать навигационные методы.

[[self navigationController ] popToRootViewControllerAnimated:YES]; 

или использовать этот

popToViewController:(UIViewController *)viewController animated:(BOOL)animated; 

& передать свой контроллер, в котором вы хотите поп.

0

Существует метод для того

- (NSArray<__kindofUIViewController *> * _Nullable)popToRootViewControllerAnimated:(BOOL)animated 

Вам нужно сделать что-то вроде

[self.navigationController popToRootViewControllerAnimated:YES]; 

Обратитесь к компании Apple Docs: https://developer.apple.com/library/ios/documentation/UIKit/Reference/UINavigationController_Class/#//apple_ref/occ/instm/UINavigationController/popToRootViewControllerAnimated:

+0

, но мой первый ViewController не мой корень ViewController –

0

Используйте эту строку кода -

[self.navigationController popToRootViewControllerAnimated:YES]; 

Или используйте this-

NSMutableArray *allViewControllers = [NSMutableArray arrayWithArray:[self.navigationController viewControllers]]; 
for (UIViewController *aViewController in allViewControllers) { 
    if ([aViewController isKindOfClass:[YourStoryBoardName class]]) { 
     [self.navigationController popToViewController:aViewController animated:YES]; 
    } 
} 
Смежные вопросы