首页 文章

iphone - UIViewController的逻辑是什么?将 - viewDidDisappear:每次消失时自动调用?

提问于
浏览
0

我没有得到UIViewController的委托逻辑 .

它有委托方法

  • viewWillAppear: - viewDidAppear: - viewWillDisappear: - viewDidDisappear:

那么,每次,如果viewcontroller的视图出现或消失,viewController中的上述方法将被调用?

我有两个viewcontrollers . viewcontroller2的视图(view2)是viewcontroller1视图(view1)的子视图 .

如果我将view2的alpha设置为0,那么这个view2将会消失 . 但是 - viewWillDisappear:和 - viewDidDisappear:从不调用viewcontroller2 .

那有什么意义呢?

我应该如何使用这些方法来控制视图的显示和消失?

谢谢

2 回答

  • 0

    这些委托是viewController的委托,而不是添加到viewController视图的子视图 . 您需要手动设置各个子视图的alpha .

    • viewWillAppear: - viewDidAppear: - viewWillDisappear: - viewDidDisappear:

    ...当您的viewController被实例化,或者有意地从屏幕上移除,或者响应内存不足的情况时调用....

  • 2

    插口,

    在整个视图控制器的生命周期中的各个点调用UIViewController生命周期方法,viewDidLoad,viewWillAppear等 .

    根据这些方法,“出现”与viewController的视图的alpha无关 . 如果其框架的一部分是视图层次结构中的最顶层,则会出现视图 . 因此,如果您完全覆盖了一个视图,然后删除了覆盖视图,您将获得一个viewWillAppear . 然而,如果你只是调整alpha,那么视图在技术上仍然是“可见的” .

    所有加载完成后调用viewDidLoad(包含在你的nib文件中) . 这是设置IB控件的地方 . 使用viewWillAppear时,您无法假设已加载任何内容 . 在大多数情况下,所有接口配置最好在viewDidLoad中完成 .

    此外,重要的是要注意这些方法是委派的 . 也就是说,你永远不会明确地调用它 .

    我希望这可以澄清生命周期方法和其中“出现”的定义 .

    祝好运!

相关问题