iOS模拟器与iPad 2,UIBarButtonItem不一致

时间:2011-08-02 15:41:43

标签: iphone ios xcode ios-simulator uibarbuttonitem

昨天发生了一件有趣的事情,我不知道是否曾经发生过其他事。我基本上根据tabbarcontroller中选择的选项卡将UIBarButtonItem添加到工具栏。例如,在选项卡2中,我将其添加为:

NSMutableArray *barItems = [[self.MainToolbar items] mutableCopy];
            if (_sortButton == nil) {
                _sortButton = [[UIBarButtonItem alloc] initWithTitle:@"Sort" style:UIBarButtonItemStyleBordered target:self action:@selector(sortButtonPressed:)];
            }
            [barItems insertObject:_sortButton atIndex:0];
            [self.MainToolbar setItems:barItems];
            [barItems release];

同样,当我删除按钮时,我这样做:

if (_sortButton != nil) {
            self.SortButton = nil;
            NSMutableArray *barItems = [[self.MainToolbar items] mutableCopy];
            [barItems removeObjectAtIndex:0];
            [self.MainToolbar setItems:barItems];
            [barItems release];
        }

所以在模拟器上,它工作正常。我可以在标签之间切换,浏览应用程序,我没有看到按钮的问题。我还用仪器测试了这个功能,没有看到任何明显的问题。然后,当我把它放在实际的iPad 2上时,当我第一次点击标签时,它显示正常,然后我点击了另一个标签,然后点击返回标签2,按钮将移动到一点点(它在开始时一直位于工具栏的左侧)。然后你点击,然后再回来,它再向右移动。不确定它为什么会发生,但我也不确定为什么它只发生在设备上,而不是在模拟器中发生这样的事情。我绝对知道事情应该总是在实际的硬件上进行测试,但只是想知道这是否是其他人已知的问题。谢谢!

1 个答案:

答案 0 :(得分:0)

我有一个类似的问题。

在我的情况下,.png文件已从项目和项目的工作目录中删除 - 出于某种原因。 因此,它不再包含在Copy Bundle Resources中。

但是,很奇怪,显然它仍然在模拟器上。就我而言,它甚至还在调试设备上。但是当构建一个用于临时分发的boulde时,它不在。因此,没有出现完整按钮(导航栏中的条形按钮项)。用户无法调用与其关联的操作。

首先,我从模拟器中删除了应用程序。我尝试了两种方法,从模拟器的gui和文件系统/用户//库/应用程序支持/ iPhone模拟器/ 5.0 /应用程序/(应用程序ID)/ ...中删除它。在这两种情况下,在simulatore上运行应用程序重新安装了未使用的.png文件和许多其他有意从我的xcode项目中删除的文件。

但是,最终解决方案是在xcode项目中再次包含png文件并将其分配给所有相关目标。在我的情况下,我还要改变图形,所以我包括新文件而不是旧文件。但我确信这个细节并不重要。

简短版本: 1.如果您的png文件仍然是项目的一部分,则将其删除。从项目文件夹中删除ist,只是为了保存。 2.将png文件重新包含到项目中。 3.创建您的构建并在空设备上尝试它。