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