6

我很久以前制作了一个 iPhone 应用程序,现在我正在考虑将其制作为通用应用程序,但我想知道是否可以使用 Storyboards 制作 iPad 版本,因此对于 iPhone,它将加载 MainWindow.xib 和 iPad它会加载一个 MainStoryboard 文件。这可能吗?

4

3 回答 3

3

是的,但您实际上必须制作两个独立的故事板(1 个用于 iPhone,1 个用于 iPad)。

在 iPhone 故事板中,只需将 mainwindow.xib 拖到 rootViewController 的中间并确保它进入全屏状态。

然后,您可以使用 iPad 故事板做任何您想做的事情。

不过,请确保您的两个故事板文件在项目摘要中正确链接!

于 2012-11-01T03:55:15.610 回答
3

Gazzini 是对的,在我进行研究以确认这是真的且相对简单的时候,我首先得到了他的答案,然后我才输入自己的答案。所以给他+1。

不过,您不需要两个单独的故事板。对于一种架构,您只需要一个故事板,而对于您已经支持的架构,您只需要一个 XIB 文件。

这是一个屏幕截图,可能有助于向您展示我在自己的测试项目中所做的事情:

是的,有可能

只需编辑应用程序的 plist 以将“nib”文件用于您已经拥有 XIB 文件的特定架构,然后为新架构指定情节提要。

于 2012-11-01T04:03:06.750 回答
0

如果您设置主界面(NSMainNibFile在 Info.plist 中)或主故事板(NSMainStoryboardFile在 Info.plist 中),您在 iPad 上使用故事板和在 iPhone 上使用 nib 会更简单。

相反,将您的应用程序委托移出MainWindow.xibUIApplicationMain通过将其类名作为第四个参数传递给UIApplicationMainin来实例化它main。使应用程序委托MainWindow.xib.

在您的应用程序委托中application:didFinishLaunchingWithOptions:,您可以检查界面习惯用法。

如果接口成语是 iPhone,则MainWindow使用-[NSBundle loadNibNamed:owner:options:].

如果界面习惯用语是 iPad,请创建您的窗口,使用 加载,MainStoryboard使用+[UIStoryboard storyboardWithName:bundle:]实例化其初始视图控制器-[UIStoryboard instantiateInitialViewController],并将该视图控制器设置为窗口的根视图控制器。

于 2012-11-01T04:02:48.190 回答