1

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

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

问题是,一旦我设置了左侧和顶部约束(强制它保持在右上角),在我更改旋转后,内部事件就会停止工作。所以只需以纵向模式打开应用程序 - 方法有效。更改为横向,我无法突然点击按钮。

我在这个简单的示例项目中重新创建了问题。

非常感谢。

4

2 回答 2

2

最近我在我的应用程序中发现了同样的错误。首先我尝试了 Slavco Petkovski 方法。但这给我带来了另一个旋转和获得正确边界和框架的错误,所以我一直在寻找。

我为这个问题找到了另一种解决方案,主要是在xib中设置视图控制器视图的自动调整掩码。但是由于我的 Xcode(版本 5.0.1)中检查器中的箭头是非活动的并且你不能设置它们,你必须在文本编辑器中打开 xib 文件,找到主视图的 autoresizingMask 属性并像这样更改它:

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

编辑:

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

self.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
于 2013-12-03T10:29:22.763 回答
2

只需将以下代码放入您的 TabBarViewController 类中。

- (void)viewDidLayoutSubviews
{
    // fix for iOS7 bug in UITabBarController
    self.selectedViewController.view.superview.frame = self.view.bounds;
}
于 2013-11-20T17:51:39.267 回答