【发布时间】:2013-10-10 00:30:01
【问题描述】:
我在 iOS7 上遇到了 UITabBarController 的一个奇怪问题,似乎找不到解决方法,所以欢迎任何帮助!
场景:
- 基于导航的应用在 iPad 上使用横向。
- 应用由一个主视图和一个作为 UITabBarController 的第二个视图组成。
- TabBarController 有两个选项卡。
- 第一个视图有两个按钮 - 每个按钮执行到选项卡栏控制器的 segue 并将不同的选项卡设置为选中状态。 (即 button1 选择第一个选项卡,而 button2 选择第二个选项卡)。
- 通过在标签栏控制器上调用
setSelectedIndex,在prepareForSegue中设置标签。
结果:
在 iOS 7 上,我发现标签栏控制器中显示的视图无法在视图的右侧边缘注册任何触摸事件!所以在上图的storyboard中,不能点击屏幕右侧的UISwitch。
我什至在视图上附加了一个轻击手势识别器,并用它来记录可以触摸的屏幕区域 - 它似乎记录了最多大约 x=770 点的触摸事件。屏幕的剩余 1/4 是“不可触摸的”!
在转场之后,如果您手动切换到另一个选项卡并再次切换回来,则触摸事件是“固定的”,并且完整视图会再次响应触摸。
这在 iOS 5 / 6 上似乎不是问题。
任何帮助都非常感谢:
- 首先是什么导致这种情况发生(iOS7 错误/更改?)
- 我还能如何解决这个问题?我试过打电话给
setSelectedViewController以及使用setSelectedIndex,这似乎是一样的。
提前致谢。
【问题讨论】:
-
您是否尝试过使用 Reveal App 或 Spark Inspector 之类的工具来查看视图层次结构中是否发生了任何奇怪的事情?
-
我在这里看到了同样的问题。我的猜测是它与框架/边界在方向上没有正确设置有关。
标签: ios7 uitabbarcontroller frame selectedindex