7

在一个通用项目中尝试我的手,我想通过故事板中的标识符加载一个 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”图像后缀)可以清除此代码?

4

1 回答 1

15

假设您正在从另一个视图控制器中执行发布的代码,您始终可以通过 获取当前情节提要[self storyboard],其中 self 是 UIViewController 的任何实例。

于 2013-04-11T15:46:16.127 回答