我有个谜题。我是个新手,最近我的第一个应用程序被批准了。然而,我刚刚注意到,在Xcode的iPad模拟器中运行应用程序时,由于某种原因,在实际的应用程序存储应用程序中,一个看起来很好的问号图标是不可见的。问号是应用程序中起始视图控制器工具栏中的UIBarButton项。奇怪的是,UIBarButton显然存在于实际的应用商店应用程序中,因为当我点击屏幕的那个区域时,它应该显示的信息屏幕确实会出现。但出于某种原因,按钮本身似乎在应用程序商店应用程序中是不可见的(但是,同样,当我在Xcode的iPad模拟器上运行程序时,同样的iPad也是可见的)。
还有一条信息:当我第一次启动从我的iPad上的应用商店下载的应用程序时,蓝色的问号实际上在应用程序的工具栏上出现了大约1/4秒,然后消失了。
下面是开始视图控制器的viewDidLoad方法中的代码段。questionMarkBarButton属性是一个UIBarButtonItem,它在单击时显示信息屏幕。
[self.questionMarkBarButton setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys: [UIFont fontWithName:@"Helvetica-Bold" size:26.0], UITextAttributeFont,nil] forState:UIControlStateNormal];有什么想法会导致这种奇怪的行为吗?我不知道如何继续,因为很明显,我不能使用Xcode的iPad模拟器来调试它,因为它们显示问号UIBarButtonItem是可见的,并且按照预期的行为。
附加信息:
下面是如何在视图控制器的UIBarButtonItem文件中声明.h:
@property (weak, nonatomic) IBOutlet UIBarButtonItem *questionMarkBarButton;它似乎被正确地连接起来,事实证明按钮工作(虽然它在从appears下载的应用中是不可见的)。
另外,下面是故事板的这一部分的图片:

最后,这里是开始屏幕在Xcode模拟器上的样子。您可以在这里看到工具栏中的问号按钮,但由于某种原因,它在从应用程序商店下载的应用程序版本中是不可见的(尽管是存在的):

更多信息:
在再次检查我的应用程序时,我发现在以后的应用程序中,我再次使用UIBarButtonItem来显示信息屏幕,它的出现和工作方式都是应该的。我编写这些UIBarButtonItems的方式之间最明显的区别是,对于这个有问题的“问号”UIBarButtonItem,我试图通过在视图控制器的viewDidLoad方法中放置下面的代码行来使问号更加大胆和突出,而我并没有在应用程序后面出现的UIBarButtonItem中使用下面的代码行(即,我只允许这个UIBarButtonItem中的文本以其简单的默认形式出现)。
[self.questionMarkBarButton setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys: [UIFont fontWithName:@"Helvetica-Bold" size:26.0], UITextAttributeFont,nil] forState:UIControlStateNormal];因此,除非有人有更好的主意,否则我想我只会为我的应用程序提交一个更新,删除这一行代码,让问号出现在它的普通默认样式中,而不是放大的粗体样式中。
最终编辑 (12/7/13)
我删除了上面的代码行,并将我的应用程序重新提交到above。该应用程序现在正常工作,与"?“信息按钮现在显示。底线似乎是,setTitleTextAttributes方法目前似乎不是一个用于UIBarButtonItem对象的好的、可靠的方法。在Xcode模拟器中,甚至在用您自己的iPhone和iPods进行测试时,它看起来都很好,但是由于某些原因,当人们从苹果商店下载应用程序时,它就不能工作了。
发布于 2013-11-16 04:54:21
目标c是区分大小写的,确保您创建和分配的bar按钮变量是相同的。希望这能帮到你。因为这是一个问题,当事情发展到正确的模拟器,而不是设备。
https://stackoverflow.com/questions/20014484
复制相似问题