我有一个带有两个故事板的通用应用程序:
iPhone.storyboard
iPad.storyboard
现在我有了 iPad 和 iPhone 中都存在的视图或“视图树”。我应该创建一个“ Universal.storyboard
”(这甚至可能吗)还是应该将这些视图排除在nib
s 中并以“旧方式”进行操作,然后引用那些UIViewController
s。
我有一个带有两个故事板的通用应用程序:
iPhone.storyboard
iPad.storyboard
现在我有了 iPad 和 iPhone 中都存在的视图或“视图树”。我应该创建一个“ Universal.storyboard
”(这甚至可能吗)还是应该将这些视图排除在nib
s 中并以“旧方式”进行操作,然后引用那些UIViewController
s。
或者,这实际上只是您是否希望使用情节提要的意见问题。如果您确实选择使用情节提要,则必须为 iPad 和 iPhone 制作单独的情节提要。即使使用故事板,如果您打算为 iPhone 和 iPad 对应物使用相同的视图控制器,您最终仍会使用一堆 userIdiom if。
我不相信您可以在两个平台之间共享故事板,因为创建故事板时,您必须将它们定义为一个或另一个。
您可以使用实用程序故事板来保存您想要通过代码直接访问的内容,而不是通过 segue - 说出您想在应用程序之间轻松共享的内容,例如登录或实用程序视图。然而,它仍然限于一个设备平台或另一个。
仅供参考,如果您向情节提要对象添加标识符,则可以在代码中像这样获取它:
UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Login" bundle:nil];
UIViewController *vc = [sb instantiateViewControllerWithIdentifier:@"LoginPage"];
//once you have the view controller you can push it, pop it or segue to it.
[self.navigationController pushViewController:vc animated:YES];
在将 iphone 应用程序转换为 iPad 时,我学会了一个巧妙的技巧,就是将 iPhone 视图从 iPhone 故事板复制/粘贴到 iPad 故事板中,然后使用弹出框显示它们。
巧妙的技巧是——在你做任何事情之前,将 iPhone 视图控制器上的 size 属性设置为自由形式,然后选择它并命令 C 复制它。转到您的 iPad 故事板并将其粘贴进去,它将保持其大小。现在您可以随心所欲地使用它。复制对象或保持原样。这可以节省大量时间和挫败感,因为正常的复制/粘贴会将 iphone 视图转换为大的 iPad 视图,然后您必须修复它们。
一些页面可以产生很好的效果,保持完全相同的大小,并且只是在 iPad 上的弹出窗口中呈现而无需任何更改。
希望对你有帮助