繁体   English   中英

环球故事板?

[英]Universal Storyboard?

在iOS开发的旧XIB世界中,我能够创建一个View Controller和一个XIB,并将它们用于iPhone和iPad环境。 只需进行一些代码调整,XIB就会调整大小并进行调整以适应不同的尺寸和宽高比。 这使我可以降低两种布局随时间不同步的风险。

在故事板的世界中,同样的事情是可能的吗? 默认情况下,Xcode为我的Universal应用程序创建了两个不同的故事板 - 一个用于iPhone,另一个用于iPad。

如何为两者使用一个故事板?

谢谢!

更新:

Xcode 6中的大小类基本上可以实现Universal Storyboards的目标。 更多信息:

https://developer.apple.com/library/prerelease/ios/documentation/DeveloperTools/Conceptual/WhatsNewXcode/Articles/xcode_6_0.html

简而言之......你做不到。

在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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM