在一个通用项目中尝试,我想从故事板中加载一个vc标识符。有没有办法在访问故事板时避免明确检查习语。
这个丑陋的代码有效......
UIStoryboard *storyboard;
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPad" bundle:nil];
}
else {
storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil];
}
UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"MyViewController"];
但是好运。字符串文字主要故事板很难看(不确定为什么项目无法保存主故事板设置,以便应用程序可以说[UIStoryboard mainStoryboard];)但显式成语检查是一个过头的桥梁。
是否有隐藏的智能(与支持视网膜显示的“@ 2x”图像后缀相比)可以清除此代码?
答案 0 :(得分:15)
假设您正在从另一个视图控制器中执行发布的代码,您始终可以通过[self storyboard]
获取当前的故事板,其中self是UIViewController的任何实例。