【问题标题】:Setting self.view.frame after going back does not work返回后设置 self.view.frame 不起作用
【发布时间】:2014-01-31 14:07:48
【问题描述】:

我在viewDidAppear中设置UITableViewController的框架如下:

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

原帧高度为516.0

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

是什么导致第二次显示控制器时框架没有改变,你如何纠正这个问题?

【问题讨论】:

    标签: ios iphone objective-c uiview uitableview


    【解决方案1】:

    当您关闭模式视图时,不会调用 viewDidAppear。将模态视图视为视图顶部的视图。

    当您将视图控制器推入/弹出导航控制器的堆栈时,通常的 viewWillAppear / viewDidAppear 方法不会被调用。如果你想确保它们总是被调用,只需将 UINavigationControllerDelegate 协议添加到你的根视图控制器:

    【讨论】:

    • 它正在被调用。我在它上面设置了一个断点,当我回去时它被调用。
    【解决方案2】:

    这是由于自动布局而发生的。取消勾选 xib 或故事板中的自动布局复选框。然后它将起作用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-01
      • 1970-01-01
      • 2023-03-27
      • 2022-10-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多