UINavigationController下的viewcontroller不调用viewwillappear

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

转自

UIViewController A下添加了一个navigationcontroller,通过navigationcontroller的pushViewController ,A 切换到B,然后再从B切换回A,此时,如何通知A 已经切换回来了?因为可能需要更新A上的数据。

本来打算viewwillappear,但切换回来的时候,就是不能调用到A上的viewwillappear.

 

其实,是不能调用到viewwillappear的。只要理解navigationcontroller的工作方式就明白了。navigationcontroller作为子窗口添加在UIViewController A 上,navigationcontroller 之下还有一个viewcontroller的。其实和B进行切换的是navigationcontroller下的viewcontroller,而不是A. A下的navigationcontroller只作为一个框架,在其框架下,进行切换类似B的viewcontroller。

 

当需要知道切换的消息的时候,要用到

UINavigationControllerDelegate

- (void)navigationController:(UINavigationController *)navigationControllerdidShowViewController:(UIViewController *)viewController animated:(BOOL)animated

iOS实现点击Back返回按钮跨过多个ViewController跳到指定的ViewController iOS里有UINavigationViewController通过栈来管理UIViewController,如果你使用segue来指定UIViewController之间的跳转,那么系统默认点击NavigationBar的返回按钮会回到上一个在栈里的UIViewController,也就是执行了栈的pop操作。 那么问题来了,假如我的storyboard是这样的,ViewController A -> ViewController B -> ViewController C。在C里面点击了Ba 阅读详情

相关推荐

viewWillAppear执行

UITableViewController或UIViewController中使() 后viewWillAppear:(BOOL)animated执行 解决方法如下: 先在 *.h 头文件里加上 接着在*.m 文件里加上相关代码 self.navigationController.delegate=self; 再使用此时naviga

u012871476的博客 3142

关于通过UINavigationController push 过去到一个view controller而这个viewvontroller的viewwillappear执行的问题

今天在项目中发现了一个问题,就是当我从一个viewcontrollerA push 到另外一个viewcontrollerB时,viewcontrollerB的viewwillappear这个方法没有执行。这下子可坏了,因为我要在viewcontrollerB中隐藏我的正式的导航栏添加自己写的加的导航栏,在viewwilldisappear中把真实的导航栏让他显示出来。怎么办呢,经过了种种方法无效

MingerW的专栏 1305

iOS 记录viewWillAppear执行的一种情况

当在Avc上present一个Bvc时,如果Bvc使用overFullScreen模式推出,dismiss后,Avc的viewWillAppear执行,需要改为fullScreen模式。

ihoudf 3053

UIViewController中addChildViewController的坑:viewWillAppear调用

项目中有一个需求是,需要在一个父UIViewController中,加载一个子ViewController。我这里是用的方式是:     [self addChildViewController:_baseVC];     [self.view addSubview:_baseVC.view]; 这里有个坑就是:子viewcontrollerviewWillAppear会被调

jlstmac的开发笔记 2726

viewWillAppear调用

最开始遇到这个问题的时候是做一个外包项目的时候,期间在UINavigationController中被push的ViewController中的viewWillAppear等诸多方法均没有被被调用。出现这个的问题原因是,调用...

cslwj2014的博客 232

viewWillDisappear,viewWillAppear调用的解决方法

产生原因是用了UINavigationController. 将UINavigationController的view作为subview添加到了其他viewController的view中。 或者把UINavigationController添加到UITabbarController中了。 此时,NavigationController的stack里面的viewController就收

Kiven's Program Space 1207

解决:IOS viewDidAppear/viewWillAppear无法被调用

本文转载至http://my.oschina.net/lvlove/blog/82264 原因: 苹果的文档是这样描述的: If the view belonging to a view controlleris added to a view hierarchy directly, the view controller will not receive...

a1311010193的博客 1064

viewWillAppear:等无法调用的总结

今天也遇到了这样的问题。 产生原因是用了UINavigationController.  将UINavigationController的view作为subview添加到了其他viewController的view中。 或者把UINavigationController添加到UITabbarController中了。 此时,NavigationController的stack里面的

ch_soft的专栏 9282

ViewcontrollerUINavigationController中入栈出栈的理解

wait_record_arr 在viewdidload里面被alloc,如果push进入下一个页面,再返回,wait_record_arr还是存在的,wait_record_arr的指针还是之前的那个值,viewdidloa如果是这个cloudVideoViewcontroller  被pop出去,再进入,wait_record_arr又要被alloc

iOS&Android开发 3035

【iOS】ViewController的生命周期

在iOS中一般有两种ViewController,一类是用于显示内容的,比如UIViewController,UITableVIewController或者自定义的VC等,另一类是容器型的控制器,如UINavigationController(内部维护一个栈,前面博客中有所讲解,用push,pop进行控制),UITabBarController(内部维护一个数组)等。容器型 VC = 用来管理多个内容 VC 的关系(栈 or 数组)内容型 VC = 页面本身(展示内容和逻辑)

2401_86200358的博客 487

ViewController的生命周期

ViewController是iOS开发中MVC框架中的C,ViewColllecter是View(视图)的Collecter(控制器)。ViewController的职责主要包括管理内部各个View的加载显示和卸载,同时负责与其他ViewController的通信和协调。iOS中的ViewController分为两种:ViewController的流程执行如下图所示: (void)loadView:加载view。 这个方法中,要正式加载View了,控制器 view 是通过懒加载的方式进行加载的,即用到的时

qq_72437394的博客 375

iphone开发之解决viewWillAppear失效

<br />开发中我也遇到了类似的问题,找到了如下文章,分享出来: iphone开发之解决viewWillAppear失效 <br />你可曾遇到过viewWillAppear没有被调用到的情况<br />产生原因是用了UINavigationController. <br />将UINavigationController的view作为subview添加到了其他viewController的view中。<br />或者把UINavigationController添加到UITabbarController

Wave的专栏 1242

(转)关于-viewWillAppear:等无法调用的总结

今天也遇到了这样的问题。 产生原因是用了UINavigationController. 将UINavigationController的view作为subview添加到了其他viewController的view中。 或者把UINavigationController添加到UITabbarController中了。 此时,NavigationController...

weixin_30737363的博客 298

关于-viewWillAppear:等无法调用的总结

今天也遇到了这样的问题。 产生原因是用了UINavigationController. 将UINavigationController的view作为subview添加到了其他viewController的view中。 或者把UINavigationController添加到UITabbarController中了。 此时,NavigationControll...

weixin_34123613的博客 72

ViewController 生命周期

ViewController 生命周期

ProgramNovice的博客 919
上一篇: 如何在地图上画线路 iphone开发
下一篇: iCloud存储原理与部分操作
ToddFox
博客等级 码龄17年 58粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值