【问题标题】:UIBarButtonItem appears in iPad simulator but not in actual appUIBarButtonItem 出现在 iPad 模拟器中,但不在实际应用中
【发布时间】:2013-11-16 03:57:55
【问题描述】:

我有一个谜题。我是新手,最近我的第一个应用程序获得了批准。但是,我刚刚注意到,当我在 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 是可见的并且行为符合预期。

附加信息:

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

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

它似乎连接正确,这可以从按钮工作的事实证明(尽管它在从 App Store 下载的应用程序中是不可见的)。

另外,这是故事板这部分的图片:

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

更多信息:

在再次检查我的应用程序时,我发现稍后在应用程序中我再次使用 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 商店下载该应用程序时,它就无法正常工作了。

【问题讨论】:

  • 这种情况只发生在您身上还是其他人也遇到过同样的事情?尝试从您的设备中删除该应用程序,然后再次从 App Store 重新下载。看看之后问题是否仍然存在。
  • 该应用刚刚出现在应用商店中,所以,没有,没有其他人可以向我报告此行为。我将我的应用程序的 App Store 版本下载到两个不同的 iPad 上,它们都显示出这种“隐形问号”行为。如果有人想亲自查看行为,我的(第一个)应用程序的名称是 ClueCalculator(线索棋盘游戏实用程序),该行为可以在工具栏中短暂出现几分之一秒的问号中看到,然后消失。同样,这种行为不会发生在 Xcode iPad 模拟器中。
  • 你能解释一下你是如何在视图控制器上添加 UIBarButtonItem 的吗,可以给你的视图设计截图。
  • 你可以尝试在viewDidAppear()中添加代码...
  • 好的,我知道您下载后所面临的情况。这是 uibarbutton 项目减速的问题。能贴出声明栏按钮的代码吗?

标签: ios objective-c ipad uibarbuttonitem


【解决方案1】:

目标 c 区分大小写,确保您创建和分配的栏按钮变量相同。希望这可以帮助你。因为这是模拟器而不是设备运行正常时的问题之一。

【讨论】:

  • 就任何可能的拼写错误或区分大小写的问题而言,一切似乎都是正确的。
猜你喜欢
  • 2014-10-01
  • 2011-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-05
  • 1970-01-01
相关资源
最近更新 更多