返回后设置self.view.frame不起作用

时间:2014-01-31 14:07:49

标签: ios iphone objective-c uiview uitableview

我在UITableViewController中设置了viewDidAppear的框架,如下所示:

self.view.frame = CGRectMake(0.0, 0.0, 320.0, 468.0);

原始帧高为516.0

这最初工作正常,框架确实发生了变化。但是,当我回到那个视图控制器(它在UINavigationController中)时,框架不会改变(在516.0处说,即使在返回时确实调用了该行。

第二次显示控制器时导致帧不变的原因是什么?如何纠正?

2 个答案:

答案 0 :(得分:0)

解除模态视图时,不会调用
viewDidAppear。将模态视图视为视图顶部的视图。

当您在导航控制器的堆栈上打开/关闭视图控制器时,不会调用通常的viewWillAppear / viewDidAppear方法。如果您想确保始终调用它们,只需将UINavigationControllerDelegate协议添加到根视图控制器:

答案 1 :(得分:0)

由于自动布局而发生。取消在xib或storyboard中的autolayout复选框。然后它会工作。