更新的iOS二进制文件未更新MainView NIB

更新的iOS二进制文件未更新MainView NIB,ios,interface-builder,uibutton,nib,Ios,Interface Builder,Uibutton,Nib,所以我正要更新我的应用程序,我遇到了一个问题。在我的主屏幕上,我有一系列的UIButton,它们可以显示不同的视图。我使用Interface Builder创建了UIButtons 在我的最新更新中,我想禁用这些按钮,直到从服务器下载适当的数据。出于某种奇怪的原因,我在Interface Builder中对NIB所做的任何更改都不起作用。例如,我禁用了IB中的一个按钮,但在构建和运行时它仍然处于活动状态。就像它仍然在使用以前版本的NIB一样。我尝试过从NIB中删除按钮,但它们仍然显示在模拟器或设

所以我正要更新我的应用程序,我遇到了一个问题。在我的主屏幕上,我有一系列的UIButton,它们可以显示不同的视图。我使用Interface Builder创建了UIButtons

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

我也试过跑步前清洁,但也没用

有什么想法吗???这是一个界面生成器错误吗

编辑:我想我可以重命名nib并强制更新加载其自身的新版本


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

这不是你的错。这是一个缺陷,在问到上述问题一年多之后,Xcode如何在运行之前将资源安装到应用程序文件夹中(无论是模拟器还是设备)。它复制新的或更改过的资源,这很好,因为它缩短了安装时间,但不会删除过时的资源。当我不再在某些视图控制器中使用.xib文件时,这种行为对我来说是一种折磨——我实际上从项目中删除了它们,但视图控制器仍然在加载它们,这让我感到困惑和不安,直到我弄清楚到底发生了什么

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

我仍在研究解决方案;如果我想一想,我会更新这个答案,如果我有什么想法的话


从App Store或.ipa文件安装时不会出现此问题-似乎此安装过程完全重新安装了资源。

这不是您的错。这是一个缺陷,在问到上述问题一年多之后,Xcode如何在运行之前将资源安装到应用程序文件夹中(无论是模拟器还是设备)。它复制新的或更改过的资源,这很好,因为它缩短了安装时间,但不会删除过时的资源。当我不再在某些视图控制器中使用.xib文件时,这种行为对我来说是一种折磨——我实际上从项目中删除了它们,但视图控制器仍然在加载它们,这让我感到困惑和不安,直到我弄清楚到底发生了什么

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

我仍在研究解决方案;如果我想一想,我会更新这个答案,如果我有什么想法的话


从App Store或.ipa文件安装时不会出现此问题-似乎此安装过程完全重新安装了资源。

您必须在代码中更改它的状态。添加行[self.button setEnabled:NO];看看这是否有帮助。我在创建了一个带有本地化nib文件的新应用程序版本后遇到了这个问题。升级时,原始版本和本地化版本都存在,应用程序默认为原始版本。不确定这是否是你的问题,但你不必担心客户有问题。这只是通过Xcode安装时的问题。当通过应用商店升级时,这些旧笔尖将被清除。@RobBajorek我相信这就是问题所在。谢谢你的信息!!这篇文章太老了,我不知道你是否找到了问题的答案,尽管我愿意分享我的经验,因为我也曾多次遇到过这样的问题。在6.0版之前的iOS中,资源名称不区分大小写。对于例如NSArray*项=[[NSBundle mainBundle]LoadNibName:@NIBName所有者:nil选项:nil];和NSArray*items=[[NSBundle mainBundle]loadNibNamed:@nibName所有者:nil选项:nil];在iOS 6.0中产生不同的结果。您必须在代码中更改它的状态。添加行[self.button setEnabled:NO];看看这是否有帮助。我在创建了一个带有本地化nib文件的新应用程序版本后遇到了这个问题。升级时,原始版本和本地化版本都存在,应用程序默认为原始版本。不确定这是否是你的问题,但你不必担心客户有问题。这只是一个问题
然后通过Xcode安装。当通过应用商店升级时,这些旧笔尖将被清除。@RobBajorek我相信这就是问题所在。谢谢你的信息!!这篇文章太老了,我不知道你是否找到了问题的答案,尽管我愿意分享我的经验,因为我也曾多次遇到过这样的问题。在6.0版之前的iOS中,资源名称不区分大小写。对于例如NSArray*项=[[NSBundle mainBundle]LoadNibName:@NIBName所有者:nil选项:nil];和NSArray*items=[[NSBundle mainBundle]loadNibNamed:@nibName所有者:nil选项:nil];在iOS 6.0中产生不同的结果。