标签栏旋转后,Touch Up Inside事件无法正常工作

时间:2013-11-12 12:58:50

标签: uitabbarcontroller touch-up-inside

我在标签栏控制器的一个视图控制器中有一个按钮。全部设置在故事板中。我注册了这样的行动方法

- (IBAction)buttonPressed:(id)sender {
    NSLog(@"Button pressed");
}

问题在于,一旦我做出左侧和顶部约束(强制它停留在右上角),在之后触发内部事件停止工作我改变旋转。所以只需在纵向模式下打开应用程序 - 方法正在运行。改为横向,突然我无法点击按钮。

我在这个简单example project中重新创建了问题。

非常感谢。

2 个答案:

答案 0 :(得分:2)

将以下代码放在TabBarViewController类中。

- (void)viewDidLayoutSubviews
{
    // fix for iOS7 bug in UITabBarController
    self.selectedViewController.view.superview.frame = self.view.bounds;
}

答案 1 :(得分:2)

最近我注意到我的应用程序中存在同样的错误。首先我尝试了Slavco Petkovski方法。但这导致了另一个旋转并获得右边界和框架的错误,所以我一直在搜索。

我找到了另一个解决这个问题的方法,主要是在xib中设置视图控制器视图的自动调整掩码。但由于我的Xcode(版本5.0.1)中的检查器中的箭头处于非活动状态而您无法设置它们,因此您必须在文本编辑器中打开xib文件,找到主视图的autoresizingMask属性并将其更改为:

<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>

编辑:

或者,您可以在视图控制器的代码中执行此操作 - 与xcode中的更改相同:

self.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;