翻译自: http://stackoverflow.com/questions/5277940/why-does-viewwillappear-not-get-called-when-an-app-comes-back-from-the-backgroun
viewWillAppear和viewDidAppear什么时候被调用
问:
当我向一个UINavigationController压入一个视图控制器的时候,
1.什么时候会触发viewWillAppear和viewDidAppear?
2.什么导致了触发viewWillAppear和viewDidAppear失败?
答:
当你调用pushViewController:animated把一个视图控制器压入UINavigationController的时候,UINavigationController会自动调用这些方法。相似的,当你tabs时,UITabBarController会直接调用这些方法,当你使用presentModalViewController时也会调用方法。当一个视图控制器的视图被添加到一个window中时也会调用这些方法。我在这些情况下没有遇到过这些方法调用失败的情况。
记住,这些方法只在这些特定的情况下控制器pushed或presented的时候被调用。在其它的情况下不会被调用,比如你添加你的视图控制器的视图作为一个视图的子视图而不是作为window的子视图。苹果官方文档说视图控制器仅用于全屏显示的视图,典型的是使用上面提到的方法。可以忽略苹果的建议使一个视图控制器关联另一个视图控制的的视图作为子视图,但是你需要在作为容器的视图控制器中手动的调用嵌套控制器的viewWillAppear和viewDidAppear。
分享到:
相关推荐
各个ViewController的 viewDidLoad , viewWillAppear, viewDidAppear,viewWillDisAppear, viewDidDisappear都会正确的执行(翻页到对应的ViewController时才会调用viewDidLoad, viewWillAppear,viewDidAppear....
首次出现扩展所有视图控制器以支持视图[Will / Did] FirstAppear仅调用一次用法只需实现viewWillFirstAppear:(BOOL)animated或viewDidFirstAppear:(BOOL)animated方法即可,每种方法都会被调用一次。 完美的地方,...
:fishing_pole: 生命周期挂钩 :fishing_pole:关于LifecycleHooks允许将自定义代码注入到视图和视图控制器中,以响应生命周期事件,例如, viewController.on(.viewDidAppear) { animated inprint("View did appear",...
2.在自定义的TabViewConroller类中导入需要的控制器头文件,定义一个方法来添加子控制; 3.创建一个继承UIView的自定义的tabbar类,并拥有一个UITabbarItem模型; 4.在自定义的TabViewConroller类中再定义一个方法,...
此示例代码增强了 UIViewController 并将日志记录功能添加到 viewWillAppear: viewDidAppear: viewWillDisappear: 和 viewDidDisappear 方法。 但是你可以在任何需要注入功能的地方使用它。 适用于来自iOS
// 只需要在要适配的控制器上加下面3句话,即可完成自动适配 #pragma mark- AutoAjustAttag - (void)dealloc{ // 销毁参照 [self.view removeRelation]; } - (void)viewWillAppear:(BOOL)animated{ // 自动...
//initWithNibName将控制器绑定xib的方法,如果xib的名称和控制器的类名称相同的时候,直接写init(会自动绑定同名的xib)就可以,如果xib的名称和类名称不同的话,必须手动调用此方法来进行绑定 ...
TabBarController与... ⁃ viewWillAppear(), viewDidAppear(), viewWillDisappear(), viewDidDisappear()等方法不被调用的解决方法(解释在这里) Coding Style: Daniel's Objective-C Coding Style Guidelines
学长发我的,我无耻的分享给大家了。 希望大家对于那些 viewdidload viewwillappear 的调用顺序有个了解。
2、页面切换时能准确触发相应的生命周期方法(viewWillAppear:等),便于管理各自页面的数据加载和其它逻辑处理; 3、导航栏支持多种布局样式,包括自适应文本宽度、自动平分、居中布局以及自定义宽度等; 4、可以...
前言 一般项目中集成统计功能随因产品类型不同而使用功能不同,但大多数统计一般只有一个目的,就是记录用户习惯,研究用户习惯,从而为用户带来更好的...[MobClick beginLogPageView:@控制器类名]; //当然这里也可以
在iOS开发中,多线程的实现方式主要有三种,NSThread、NSOperation和GCD,我前面博客中对NSOperation和GCD有了较为详细的实现,为了学习的完整性,今天我们主要从代码层面来实现NSThread的使用。案例代码上传至 ...
viewWillAppear中实现 showbigImage=[[ShowBigImageBox alloc]init]; [showbigImage setShowBigImageBoxDelegate:self]; viewWillDisappear中实现:[showbigImage clearBigImageBox];//在页面结束的时候清楚图片...
iOS 自定义状态栏和导航栏 开发IOS APP 经常会根据需求更改状态栏和导航栏,这里整理了几种方法,大家可以看下。 导航栏透明 -(void)viewWillAppear:(BOOL)animated { //viewWillAppear中设置透明 [super ...
一种在 iOS UI 之上定义和呈现 UI 规范的简单方法,其灵感来自 Lucas Rocha 的 Android 库 dspec。 添加 dspec 有两种方法: DesignSpecView *designView; - (void)viewWillAppear:(BOOL)animated { [super ...
-注意这里一定要用动画的方式隐藏导航栏,这样在使用滑动返回手势的时候效果最好,和上面动图一致.这样做有一个缺点就是在切换tabBar的时候有一个导航栏向上消失的动画. - (void)viewWillAppear:(BOOL)animated { ...
这个是解决iOS 7中短时间动画案例,源码SafeTransition,解决iOS 7中短时间内连续push或者pop view动画操作而产生崩溃的bug。 bug描述原因为 Can not add self as subview。可以用下面这段代码重现这个bug: -...
建议使用Xcode 12和CocoaPods > = 1.10.0.rc.1。 更多信息 。 设置 将QKMRZScannerView分配给负责显示摄像机视图的组件。 随后,将此组件连接到您的UIViewController。 @IBOutlet weak var mrzScannerView: ...
视图跟随键盘移动,防止被键盘遮挡,支持iOS6以上系统 ##1、如何使用? - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; //开启视图跟随键盘移动效果 [self.view ...
2. 功能:采集电子签名,支持签名界面为横屏其余页面都是竖屏、清除重写、灵活控制提示语信息、以及查看商户协议 3. 核心原理: 只旋转特定的屏幕 4. 核心步骤:1、viewWillAppear设置横屏2、viewWillDisappear 设置...