如何在Xcode中恢复一个Storyboard?

6
我遇到了一个问题。几天前,我不小心删除了我的StoryBoard,于是我立即进入回收站并将StoryBoard拖回到项目中。一切都正常运行。但是,当我清空回收站时,我的项目中似乎没有StoryBoard了;当我单击该文件时,它显示为红色并且无法加载。让我失望的是,我以为所有东西都丢失了,所以我开始构建新的StoryBoard并连接类、输出口和操作。
然后,我尝试在模拟器上构建该项目,它使用旧的StoryBoard进行构建。我认为这可能只是从内存中加载,因此我删除了模拟器上的应用程序并重新构建了该项目。同样的事情再次发生了。然后我将其构建到我的iPhone上,但我找不到任何地方可以找到旧的StoryBoard,但它仍然存在。
这是怎么回事?这是否意味着我将能够恢复我的StoryBoard?
另外,当我打开项目检查器并转到Build Phases > Copy Bundle Resources,并右键单击Storyboard.storyboard,然后单击“在查看器中显示”,它会显示我的新故事板。
2个回答

5

1 - 在 Derived Data 中有一个路径如下:

/Users/<Your user name>/Library/Developer/Xcode/DerivedData/<Your App Name>/Build/Products/Debug-iphonesimulator/<app Name.app>

请浏览到该位置。
2 - 在您的.app文件上,右键单击 -> 显示包内容。
3 - 在结果目录列表中,浏览到Base.lproj文件夹。在其中,您很可能会找到旧的storyboard。
如果您从XCode组织器中执行了Delete Derived Data操作,则不太可能在此处找到任何内容。但幸运的是,XCode不会违背您的意愿两次删除它。
因此,请试试运气。

1
我想我找到了这个文件。但是Xcode说Interface Builder无法打开编译后的nibs文件。 - Scott
好的,请参考这个问题:https://dev59.com/I4Dba4cB1Zd3GeqPEXMj - Nirav Bhatt
我看到这是一个旧问题,但我现在使用的Xcode 6.3.1也遇到了同样的问题,上面的链接似乎并不那么有用,我想知道是否还有其他解决方案。更确切地说,当我从上面的路径中复制Main storyboard时,主storyboard的名称为Main.Storyboardc。 - Ilir V. Gruda
我遇到了同样的问题。但是当我粘贴那个路径时,它显示该文件夹不存在。有人能帮忙吗? - iPeter
派生数据文件夹现在可以通过XCode-> Windows菜单-> 项目-> 选择您的项目-> 单击右侧的箭头图标进行访问。 - Nirav Bhatt

0

我在Xcode 7中也遇到了同样的问题。

但是当我从Derived Data中复制并粘贴它时,我得到了以下错误信息:

"Interface Builder无法打开已编译的nibs文件"

因此,如果您通过引用删除了storyboard,请首先检查项目文件夹(使用Finder)。如果它在那里,您可以将其拖回到Xcode中的项目中,或者您可以使用“添加文件到…”菜单选项。该文件将正常工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接