我在这里尝试了很多答案,但没有一个具有相同的确切场景。以编程方式返回到以前的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
,如果我打印所有我看到的self.navigationController
中的视图控制器都是TabBarController
,我不应该看到前面的视图控制器在launchExternalUI
上推动了这个吗? [self.navigationController popViewControllerAnimated:YES];
根本没有效果。我对此有点失落。
重要的是要注意previousViewController
在本地故事板中定义,而TabBarController
在不同的.framework
中实现,是否会导致此问题?
在此先感谢您的帮助!
**编辑:导航流量我需要的是storyboard1:VC1->storyboard2:VC2->storyboard1:VC1
,我能得到storyboard1:VC1->storyboard2:VC2
一部分工作,但不是storyboard2:VC2->storyboard1:VC1
launchExternalUI方法在哪个类中?什么是previousViewController? – rdelmar 2014-09-19 20:03:21
感谢您的评论,它是在.framework中的Utils类(NSObject)中定义的类方法。 – dorbsz 2014-09-19 21:04:47