Я пробовал много ответов здесь, но ни один из них не имел одинакового точного сценария.Программно вернуться к предыдущему ViewController в другой раскадровке
Я пытаюсь перейти к UIViewController
, который находится в отдельной раскадровке в другом комплекте, до сих пор мне удалось перейти к нему, но я не смог вернуться к предыдущему UIViewController
. Метод, который вызывает контроллер внешнего вида (TabBarController
) реализуется следующим образом:
+(void) launchExternalUI: (UIViewController *) previousViewController {
UIStoryboard* sb = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle: [self frameworkBundle]];
TabBarController *vc = (TabBarController*) [sb instantiateInitialViewController];
[previousViewController.navigationController pushViewController:vc animated:YES];
[vc release];
}
Теперь метод в пределах TabBarController
, который должен вернуться к предыдущему контроллеру Вид:
- (void) navigateToPreviousViewController: (UIGestureRecognizer *)gesture {
[self.navigationController popViewControllerAnimated:YES];
}
В TabBarController
, если печать все viewcontrollers в пределах self.navigationController
, все, что я вижу, это TabBarController
, не должен ли я видеть предыдущий контроллер представления, который нажал это на launchExternalUI
? [self.navigationController popViewControllerAnimated:YES];
не имеет никакого эффекта. Я немного потерял это.
Также важно заметить, что previousViewController
определен в локальной раскадровке, а TabBarController
реализован в другом .framework
, это может вызвать проблему?
Заранее благодарим за помощь!
** Edit: Поток навигации мне нужно storyboard1:VC1->storyboard2:VC2->storyboard1:VC1
, я могу получить storyboard1:VC1->storyboard2:VC2
часть работы, но не storyboard2:VC2->storyboard1:VC1
В каком классе находится метод launchExternalUI? Что такое предыдущий контроль? – rdelmar
Спасибо за комментарий, это метод класса, определенный в классе Utils (NSObject) внутри .framework. – dorbsz