导航栏互相加载的栈操作问题

使用导航栏时,
A为根视图控制器
A加载B
B加载C

 在A的 viewWillDisappear方法中对当前控制器设置导航栏隐藏
当A调用B时,导航栏隐藏,B调用C也隐藏了(因为A,B,C使用的是同一个导航栏),现象正常

在C的 viewWillDisappear方法中对当前控制器设置导航栏隐藏,当C退回到B时,发现没有隐藏,退回A时,也没有隐藏,(因为A,B,C使用的是同一个导航栏,所以C操作后应该会影响B和A才对),现象好像不正常,为什么?

因为A加载B,B加载C饿操作是一个栈操作

A在栈底,加载B,再由B加载C后,会有ABC的栈结构,此时A在执行viewWillDisappear方法的前后都存在,所以不管怎么操作都会影响导航栏在ABC三个界面上的状态;
但是C退回到B,B退回到A是一个弹栈操作,不能保证在C viewWillDisappear之前是否C本身就已经被弹出栈(栈变量被弹出即立即释放),所以在执行操作时,C已经被释放了,所以操作无效
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值