2012-03-11 44 views
2

所以我即将更新我的应用程序,我遇到了一个问题。在我的主屏幕上,我有一系列导致不同视图的UIButton。我使用Interface Builder创建了UIButtons。更新iOS二进制不更新MainView NIB

在我最近的更新中,我想禁用按钮,直到从服务器上下载适当的数据。出于某种奇怪的原因,我在Interface Builder中对NIB所做的任何更改都不起作用。例如,我禁用了IB中的一个按钮,但在Build &运行时它仍然处于活动状态。这就像它仍然使用以前版本的NIB。我尝试从NIB中删除按钮,但它们仍然显示在模拟器或设备中。我发现修复它的唯一方法虽然不理想,但是要删除设备或模拟器的整个应用程序并安装新的副本。但我的用户可能不会那样做。他们只需从App Store下载更新。

我也试过在运行之前清洗,也没有工作。

任何想法???这是一个接口生成器的错误?

编辑:我想我可以重命名笔尖并强制更新加载自己的新版本。

更新:重命名Main NIB文件工作强制设备/模拟器更新文件。我真的认为这是一个错误的地方。我的代码有时可能会马虎,但我知道如何启用/禁用按钮。

+0

然后你必须改变它的代码状态。添加行[self.button setEnabled:NO];并看看是否有帮助。 – CodaFi 2012-03-11 00:11:23

+0

试过了。依然没有。 – Matt 2012-03-11 00:21:13

+4

创建一个新的应用程序版本与本地化的nib文件后,我遇到了这个问题。升级时,原始版本和本地化版本都在那里,应用程序默认为原始版本。不知道这是你的问题,但你不必担心有问题的客户。这只是通过Xcode进行安装时的一个问题。通过App Store升级时,这些旧笔尖将被擦除。 – 2012-03-11 02:47:19

回答

0

这不是你的错。这是Xcode(上述问题超过一年后)在运行之前将资源安装到应用程序文件夹(模拟器或设备)的一个缺陷。它复制新的或更改的资源(这很好,因为它缩短了安装时间),但它确实删除了过时的文件,而不是而不是。当我在某些视图控制器中使用.xib文件时,这种行为使我感到困扰 - 我实际上已经从项目中删除了它们,但视图控制器始终加载它们,直到我找出发生了什么之前,上。

在安装之前从模拟器或设备中删除应用程序,perforce也会删除旧资源,并且下一次安装将只包含在您的构建中指定的资源。

我还在研究解决方案;如果我想到它,如果当我想出什么时,我会更新这个答案。

这个问题确实是而不是从App Store或从一个.ipa文件安装时出现 - 看起来这个安装过程干净地重新安装资源。