我很久以前制作了一个 iPhone 应用程序,现在我正在考虑将其制作为通用应用程序,但我想知道是否可以使用 Storyboards 制作 iPad 版本,因此对于 iPhone,它将加载 MainWindow.xib 和 iPad它会加载一个 MainStoryboard 文件。这可能吗?
3 回答
是的,但您实际上必须制作两个独立的故事板(1 个用于 iPhone,1 个用于 iPad)。
在 iPhone 故事板中,只需将 mainwindow.xib 拖到 rootViewController 的中间并确保它进入全屏状态。
然后,您可以使用 iPad 故事板做任何您想做的事情。
不过,请确保您的两个故事板文件在项目摘要中正确链接!
Gazzini 是对的,在我进行研究以确认这是真的且相对简单的时候,我首先得到了他的答案,然后我才输入自己的答案。所以给他+1。
不过,您不需要两个单独的故事板。对于一种架构,您只需要一个故事板,而对于您已经支持的架构,您只需要一个 XIB 文件。
这是一个屏幕截图,可能有助于向您展示我在自己的测试项目中所做的事情:
只需编辑应用程序的 plist 以将“nib”文件用于您已经拥有 XIB 文件的特定架构,然后为新架构指定情节提要。
如果您不设置主界面(NSMainNibFile
在 Info.plist 中)或主故事板(NSMainStoryboardFile
在 Info.plist 中),您在 iPad 上使用故事板和在 iPhone 上使用 nib 会更简单。
相反,将您的应用程序委托移出MainWindow.xib
并UIApplicationMain
通过将其类名作为第四个参数传递给UIApplicationMain
in来实例化它main
。使应用程序委托MainWindow.xib
.
在您的应用程序委托中application:didFinishLaunchingWithOptions:
,您可以检查界面习惯用法。
如果接口成语是 iPhone,则MainWindow
使用-[NSBundle loadNibNamed:owner:options:]
.
如果界面习惯用语是 iPad,请创建您的窗口,使用 加载,MainStoryboard
使用+[UIStoryboard storyboardWithName:bundle:]
实例化其初始视图控制器-[UIStoryboard instantiateInitialViewController]
,并将该视图控制器设置为窗口的根视图控制器。