首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

什么时候调用viewWillDisappear?什么时候不是?

viewWillDisappear是UIViewController生命周期中的一个方法,它会在视图即将从屏幕上消失之前被调用。具体来说,当以下情况发生时会调用viewWillDisappear:

  1. 当前视图控制器的视图将要被另一个视图控制器的视图覆盖时,例如通过导航控制器的push操作切换到下一个视图控制器。
  2. 当前视图控制器的视图将要被模态视图控制器的视图覆盖时,例如通过模态弹出一个视图控制器。
  3. 当前视图控制器的视图将要被tabBarController的另一个子视图控制器的视图覆盖时,例如通过tab切换到另一个子视图控制器。

viewWillDisappear的调用时机可以用于执行一些在视图即将消失前需要处理的操作,例如保存数据、取消网络请求、停止定时器等。

而以下情况不会调用viewWillDisappear:

  1. 当前视图控制器的视图被其他视图控制器的视图覆盖时,但不是通过上述方式切换的,例如通过present一个视图控制器,但不是以模态方式弹出。
  2. 当前视图控制器的视图被其他非视图控制器的视图覆盖时,例如弹出系统的UIAlertController。

需要注意的是,viewWillDisappear只是视图即将消失的通知,实际上视图可能还没有真正从屏幕上移除。如果需要在视图已经完全从屏幕上移除后执行操作,可以使用viewDidDisappear方法。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

什么时候调用layoutSubviews

如果你想强制更新布局,不要直接调用此方法。你可以调用setNeedsLayout方法;如果你想立即数显你的views,你需要调用layoutIfNeeded方法。...layoutSubviews以下情况会被调用 苹果官方文档已经强调,不能直接调用layoutSubviews对子视图进行重新布局。那么,layoutSubviews什么情况下会被调用呢?...通过百度搜索,发现以下几种情况layoutSubviews会被调用。 直接调用setLayoutSubviews。(这个在上面苹果官方文档里有说明) addSubview的时候。...我简单测试了一下,上面基本都会被调用。 注意: 当view的fram的值为0的时候,`addSubview`也不会调用`layoutSubviews`的。...可以自己动手,深入理解layoutSubviews的调用机制。

34810

在Python中什么时候用Yield什么时候用Return

这篇文章解释了你什么时候应该使用它。 最近,我看到很多在结构中使用yield关键字的项目,无论是否需要。 所以我决定研究一下,和大家分享一些相关信息。 最重要的事情先讲。...在函数定义中使用yield语句足以导致该定义创建生成器函数,而不是正常函数。 yield语句暂停函数的执行,并将值返回给调用者,但保留足够的状态以使函数能够恢复到停止的地方。...这允许它的代码随着时间的推移产生一系列值,而不是一次计算它们并将它们像列表一样发回。...足够的信息被保存,以便下次调用next()时,函数可以一样进行,而yield语句只是另一个外部调用。 [图片] yield语句不允许在try ... finally结构的try子句中使用。...生成器函数的定义与普通函数一样,但是每当需要生成一个值时,都会使用yield关键字而不是返回值。如果def的主体包含yield,则该函数将自动成为生成器函数。

2.3K00

入门科普:什么时候要用Python?用哪个版本?什么时候不能用?

Python的设计思想:简单而美丽的程序代码应该遵循更加优雅和易于使用的风格,而不是过早优化和编写难以解释的代码。...如果在编写代码时不遵循简单、优雅和极简主义的Python正确原则,则代码被称为不是“pythonic”。...解释器使用GIL只允许单个线程一次有效执行,即使它在多核处理器上运行时,从而有效限制了多线程实现的并行性,这取决于进程是I / O绑定还是CPU绑定,以及在解释器之外有多少个调用。...它还使用制表符或空格来显示和分隔特定的代码块,而不是像C、C ++、Java等语言中使用传统的括号或关键字。...每个模块通常都有类和对象,例如其它模块和代码调用的函数。所有互连的模块最终构成了一个完整的Python程序、应用或系统。

1.1K20

职场001:什么时候跳槽

这话如果你知道公司每年涨薪时间,那么就可以去等,如果本身涨薪每个人每年不是同一个时间点,那么上面这个话就有问题。 应该改成,明年四月涨薪,五月你的工资就会体现了。...大家都不是傻子,如果你低价招进来一个人,可他明显被低估,你以为你占了便宜,其实是你要吃亏。尊重一个人,就是尊重他的价值,如果你明知占了便宜,还是尽量弥补一下,以便让他获得尊重。...软件行业不好数据化,一个优秀的员工,并不一定就是加班最多的,而且很大程度上,加班多的也不是最好的员工。 一个项目,bug 数越多越好,这个是老板想看到大家工作饱满,都在忙碌着。...重赏之下必有勇夫,但将帅之才,可不是这么简单。 跳槽的最简单的逻辑是,对方给的钱多。但本质要问自己一个问题,再多看几年,是否跳槽对于个人成长有用?...我们总在提着舒适区,跳出舒适区,不是说盲目就去冲,这里的跳出,指的是匹配自己人生计划,然后给自己一个试错机会,来看看自己是否有更多的可能。 每一份经历都有其意义,只有重复的工作才丧失了成长机会。

33410
领券