其实关于largeTitle的使用非常简单。这里就不细说了。只是记录一下我使用大标题的一个误区。
刚开始的时候一直以为某个控制器用不用大标题是用下面这句代码控制的
self.navigationController.navigationBar.prefersLargeTitles = YES;
如果从一个使用大标题的控制器push到一个使用普通标题的控制器,那就在另一个控制器中写上
self.navigationController.navigationBar.prefersLargeTitles = NO;
为了切换控制器的时候设置不会有冲突,就只能都写在viewWillAppear中。
但这样写完之后发现从大标题push到小标题没有问题,但pop回来的时候却没有平滑的动画效果。但看iphone的一些原生app中确实pop回来也是可以有动画的。
后来终于发现,原来的想法是大错特错。控制大标题还是小标题应该是使用下面这句代码
self.navigationItem.largeTitleDisplayMode = UINavigationItemLargeTitleDisplayModeAutomatic;
至于用Automatic还是Always、Never,就看需求了。
所以从大标题切换到小标题的做法应该是。合适的时机设置好下面这句
self.navigationController.navigationBar.prefersLargeTitles = YES;
然后在大标题控制器里设置
self.navigationItem.largeTitleDisplayMode = UINavigationItemLargeTitleDisplayModeAutomatic;
或者
UINavigationItemLargeTitleDisplayModeAlways
小标题控制器里设置
self.navigationItem.largeTitleDisplayMode = UINavigationItemLargeTitleDisplayModeNever;
唉,虽然一开始就知道largeTitleDisplayMode这个属性,但是从没想过这个属性的用途。越想越觉得自己好蠢