解决自定义导航栏导致系统导航栏消失的问题

  • 问题还原
    公司项目中首页需要自定义一个导航栏,我的做法是在首页viewWillAppear中写上self.navigationController.navigationBarHidden = YES,在从首页推到的二级页的viewWillAppear中写上self.navigationController.navigationBarHidden = NO。那么问题来了,第一个问题是在二级页通过右划手势退回上一页的时候系统导航栏立马消失,和页面消失不同步,如图所示:

Swift笔记:从Swift再看ARC以及循环引用

自动引用计数(ARC)

Swift中ARC的原理同OC中是相同的,简单来讲就是当实例不再被使用(引用计数为0)时,实例会被释放。
为确保实例不会被提前销毁而引起程序崩溃,ARC会跟踪和计算每一个实例被多少属性、常量、和变量引用,无论是将实例赋值给属性、常量还是变量,它们都会对实例保持强引用,只要强引用还在,实例就不会被销毁。

Swift笔记:关于init的总结

两种构造器

Swift中为确保类在创建时每个属性都会被初始化,定义了两种构造器,分别为指定构造器(designated initializer)和便利构造器(convenience initializer),每一个类都要至少包含一个指定构造器,而两种构造器之间的调用要符合以下三条规则:

|