滥用单例造成的bug

#本人有若干成套学习视频, 可试看! 可试看! 可试看, 重要的事情说三遍 包含Java, 数据结构与算法, iOS, 安卓, python, flutter等等, 如有需要, 联系微信tsaievan.

#####今天不聊技术, 讲一点工作上的小事情

我们项目里面大部分是用的自定义的NavigationBar, 然后我们会在ViewControllerviewWillAppear:方法里面去设置隐藏NavigationBar:

[self.navigationController setNavigationBarHidden:YES animated:animated];

然后将自定义的NavigationBar添加在view上. 基本思路就是这样. 今天的重点也不在这里.

titleView

这个是自定义的titleView也是添加在自定义的NavigationBar上的. 当切换港股模拟这两个按钮的时候, 其实是两个控制器之间的切换, 这两个控制器又分别添加了不同的自定义的NavigationBar, 但是后来我就发现, 当切换的时候, titleView莫名其妙地不见了.

于是我打印了自定义的NavigationBarsubviews, 发现titleView不在数组里了, 我在想, 这特么啥时候给remove掉了.

于是我就往根源上寻找, 我发现这么一行代码:

 [TradeViewMainViewController shareMainTradeVC].navTitleView

这个titleView是单例的属性, 那么它在内存中也只有一份, 这就造成了, 当你切换控制器的时候, 这个titleView已经又被别的navigationBar持有了, 这时候当然就会从之前的navigationBar中移除了. 为了解决这个问题, 我只能在每次viewWillAppear:方法里去添加自定义的NavigationBar.

#####只是一点自己的小思考. 总结一下

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值