我创建了一个带有故事板的简单项目,现在意识到他们不支持iOS 4.x,我希望使用这些设备的用户能够下载我的应用程序。该应用程序只是一个翻转视图控制器,并且相当简单,但如果有一种方法可以从故事板中提取XIB,我宁愿这样做而不是重新创建它。
tl; dr:从.storyboard中获取.xibs?
答案 0 :(得分:20)
无法从故事板中提取Xib文件,但您可以通过将故事板实例化为UIStoryboard对象并通过其标识符获取UIViewController来实例化故事板中的UIViewControllers,以下是我的操作方法:
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:
@"MainStoryboard_iPhone" bundle:[NSBundle mainBundle]];
UIViewController *myController = [storyboard instantiateViewControllerWithIdentifier:@"myId"];
希望这会有所帮助。
答案 1 :(得分:11)
我发现最简单的方法是将项目复制并粘贴到故事板中,一次一个视图,并为每个视图重新创建视图控制器。
但是,对于任何执行此操作的人,请注意除了所有其他XIB之外,还必须为MainWindow制作xib ,并相应地将其挂钩,包括设置窗口和应用代表。故事板为您处理所有这些,因此当您尝试避免它们时,您需要进行大量手动设置,以便从get-go句柄中为您创建非故事板项目。不要做我做的事情,并尝试让你的根控制器成为主视图控制器,因为它会说明UIApplication如何不符合XIB各个属性的键值。
答案 2 :(得分:4)
正如其他一些人所建议的那样,最好的办法是将故事板中的视图克隆到XIB中。
答案 3 :(得分:1)
无法获取xib文件。您的故事板被编译为nib文件并打包到应用程序包中的storyboardc文件中。
要找到nib文件,请在Finder中选择您构建的可执行文件,然后右键单击“显示包内容”。导航到en.lproj目录并找到storyboard.storyboardc文件。在故事板文件上再次右键单击“显示包内容”,您将找到您的笔尖。它们对你没什么用处,因为它们是编译的二进制笔尖。
答案 4 :(得分:1)
您可能无法从故事板中提取.xib,但请尝试此操作。打开基于.xib的项目,为视图创建空的.xib文件,同时打开storyboard项目。选择故事板场景中的所有UI元素,然后将它们拖放到基于.xib的项目中。我已经做了相反的事情(从.xib转移到故事板)没有任何问题。