UIBarButtonItem出现在iPad模拟器中,但不在实际应用中

时间:2013-11-16 03:57:56

标签: ios objective-c ipad uibarbuttonitem

我有一个谜题。我是新手,最近得到了我的第一个应用程序批准。但是,我刚刚注意到,当我在Xcode的iPad模拟器中运行应用程序时出现问号的问号图标在实际应用程序商店应用程序中由于某种原因是不可见的。问号是应用程序中起始视图控制器工具栏中的UIBarButton项。奇怪的是UIBarButton显然出现在实际的应用程序商店应用程序中,因为当我点击屏幕的那个区域时,它应该显示的信息屏幕确实出现了。但由于某些原因,按钮本身似乎在应用程序商店应用程序中是不可见的(但是,当我在Xcode的iPad模拟器上运行我的程序时,同样可见UIBarButton)。

还有一条信息:当我第一次启动从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是可见的并且表现得像预期的那样。

Additonal Info:

以下是在视图控制器的.h文件中声明UIBarButtonItem的方法:

@property (weak, nonatomic) IBOutlet UIBarButtonItem *questionMarkBarButton;

它似乎正确连接,正如按钮工作的事实所证明的那样(虽然它在从App商店下载的应用程序中是不可见的)。

此外,这是故事板的这一部分的图片:Storyboard picture

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

enter image description here

更多信息:

在再次检查我的应用程序时,我发现稍后在应用程序中我再次使用UIBarButtonItem来显示信息屏幕,它会显示并按预期工作。我如何编码这些UIBarButtonItems之间最明显的区别是,对于这个有问题的“问号”UIBarButtonItem,我试着通过在视图控制器的viewDidLoad方法中放入以下代码行来使问号更大胆,更突出,而我做了不要将以下代码行与稍后出现在应用程序中的UIBarButtonItem一起使用(即,我让其他UIBarButtonItem中的文本只显示在其普通的默认形式中)。

    [self.questionMarkBarButton setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys: [UIFont fontWithName:@"Helvetica-Bold" size:26.0], UITextAttributeFont,nil] forState:UIControlStateNormal];

所以,除非有人有任何更好的想法,我想我只会提交我的应用程序的更新,我删除这行代码并让问号以其简单的默认样式显示,而不是放大的,大胆的样式

最终修改(2013年12月7日)

我删除了上面的代码行,然后将我的应用重新提交到App Store。该应用程序现在正常工作,“?”信息按钮现在显示。底线似乎是setTitleTextAttributes方法当前不是一个与UIBarButtonItem对象一起使用的好的,可靠的方法。它似乎在Xcode模拟器中工作正常,甚至在使用您自己的iPhone和iPod进行测试时,但由于某些原因,当人们从Apple商店下载应用程序时,它将无法正常工作。

1 个答案:

答案 0 :(得分:0)

目标c区分大小写,请确保您创建和分配的条形按钮变量相同。希望这可以帮到你。因为当事情适合模拟器而不是设备时,这是一个问题。