是的,它一点也不差! -instantiateInitialViewController
是你在找什么。
一个辅助我倾向于使用是:
- (void) loadStoryboard:(NSString *)storyboardName animated:(BOOL)animated
{
if ([_currentStoryboard isEqual:storyboardName])
{
return;
}
_currentStoryboard = storyboardName;
UIStoryboard* storyboard = [UIStoryboard storyboardWithName:storyboardName bundle:nil];
UIViewController* newRootController = [storyboard instantiateInitialViewController];
if (!animated)
{
self.window.rootViewController = rootController;
return;
}
newRootController.view.alpha = 0.0;
[self.window addSubview:newRootController.view];
[UIView animateWithDuration:0.5 animations:^{
newRootController.view.alpha = 1.0;
} completion:^(BOOL finished) {
self.window.rootViewController = newRootController;
}];
}
这种变异被设置为倾销地是你的AppDelegate
- 应该是很容易适应大多数情况下,虽然。
我正在寻找加载在故事板中定义的特定视图控制器,而不是初始视图控制器。这可能吗? – 2012-04-25 15:45:44
是的,UIStoryboard上可能帮助你的另一种方法是' - (id)instantiateViewControllerWithIdentifier:(NSString *)identifier'。你可能想考虑把事情分解成多个故事板,但是(如果它在你的上下文中有意义) - 到目前为止,该模式对我的项目真的很有帮助 – Nevir 2012-04-25 18:13:50