[英]Universal Storyboard?
在iOS开发的旧XIB世界中,我能够创建一个View Controller和一个XIB,并将它们用于iPhone和iPad环境。 只需进行一些代码调整,XIB就会调整大小并进行调整以适应不同的尺寸和宽高比。 这使我可以降低两种布局随时间不同步的风险。
在故事板的世界中,同样的事情是可能的吗? 默认情况下,Xcode为我的Universal应用程序创建了两个不同的故事板 - 一个用于iPhone,另一个用于iPad。
如何为两者使用一个故事板?
谢谢!
更新:
Xcode 6中的大小类基本上可以实现Universal Storyboards的目标。 更多信息:
简而言之......你做不到。
在iPhone开发结束时,我用它来创建iPad故事板。
您必须找到iPhone故事板并使用终端,您可以复制它,为其提供Xcode为您创建的iPad故事板的名称。 删除空的旧故事板并打开新复制的一个changinge targetRuntime属性为“iOS.CocoaTouch.iPad”而不是旧值“iOS.CocoaTouch”。
用Xcode打开iPad故事板,一切都在那里,但它仍然需要安排并连接到ViewController(包括接线的东西......)。 它并不完美,但我通常这样做是为了节省一些容易出错的复制和粘贴(以及几个小时)。
如果您只想将iPhone的应用程序作为目标并将其发送到iPad,您只需使用iPhone Xib,就可以获得右下角的2x小按钮。
2014年末更新(Xcode 6测试版发布后)
Xcode 6现在允许您定义单个故事板并通过大小类概念 ,使其适应所有设备。 这个解决方案有点令人困惑(特别是如果你熟悉Android环境中如何解决这个问题),但这是正确的方向恕我直言。
是的你可以。 您只需在常规/部署信息下的Xcode中选择相同的故事板即可
我有一些应用程序有这个。 他们共享很多视图控制器。 如果使用自由形式大小,则可以在故事板和两个单独的segue中创建单独的视图控制器。
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
[self performSegueWithIdentifier:@"Open VC" sender:sender];
} else {
[self performSegueWithIdentifier:@"Open VC iPad" sender:sender];
}
唯一的缺点是,除非您切换到iPad故事板,否则不能直接从故事板(popover等)使用iPad特定控件
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.