iOS6上UINavigationBar的上半部分没有响应水龙头

时间:2014-01-16 14:51:11

标签: ios iphone

我正在研究iPhone应用程序,并且遇到了最棘手的问题。

在iOS 6上,导航栏上的按钮完全忽略了上半部分的按键。看看下面的图片,我粗略选择了导航按钮的点按区域: https://www.dropbox.com/s/izs6ic5jlubm1yk/navtap_problem.png

以下是一些可能有用的信息:

  • 该应用支持iOS 6和7
  • 该应用未使用autolayout(改为使用deltas)
  • 此问题仅出现在iOS 6上,它在iOS 7上正常运行
  • 问题出现在应用程序的所有视图中(顶部有导航栏)
  • 在IB中手动添加的导航栏以及来自UINavigationController的导航栏中出现的问题
  • 如果我直接从其中一个受影响的视图控制器启动应用程序,则问题不存在
  • 当我通过空的InitialViewController启动应用程序并加载另一个VC
  • 时出现问题

我正在使用ECSlidingViewController并从InitialViewController加载真实的VC(用户会看到),如下所示:

self.topViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"SearchSplitViewNavigationController"];
[self resetTopView];

看起来隐藏的东西覆盖了导航屏幕的上半部分。我查看了self.view.subviews的内容,但没有看到任何内容。

任何可能导致此问题的想法?或者我还能检查什么?

2 个答案:

答案 0 :(得分:0)

如果以编程方式包含任何元素,则该元素不使用通过故事板包含的增量。 对于这些元素,您必须测试您所在的iOS版本并调整代码中的增量。

请检查:Best Way to check for iOS 7 or earlier?以获取有关版本检查的帮助。

答案 1 :(得分:0)

我找到了解决方案(不是原因)。 This awesome library帮助我找到了解决问题的方法。

实际上有一个透明的UIView坐在导航栏的顶部。它位于0,20,高度为20点。

该视图不在self.view.subviews数组中,但执行[self.view bringSubviewToFront:myNavigationBar]似乎可以解决问题...