Skip to content

Welcome to the JZNavigationExtension wiki!

Jazys edited this page Jun 29, 2016 · 5 revisions

###关于几个API的使用说明:

jz_wantsNavigationBarVisible
jz_navigationBarBackgroundAlpha
jz_navigationBarTintColor

这三个API行为基本一致,没有默认值,如果你没有为当前控制器设置过它们,那么它们不会做任何操作。

就用jz_wantsNavigationBarVisible打比方

控制器A没有设置过jz_wantsNavigationBarVisible,控制器B的jz_wantsNavigationBarVisible = NO,这时A->PUSH->B,导航栏隐藏。B->POP->A,导航栏仍然为隐藏。

###这样做的解释

每个项目对这几个属性期待的默认值是不同的,所以总结原因有以下几点:


#####1、工程影响最小化: 如果没有设置过这几个属性,不会对导航栏做任何操作,这样有效的避免了集成JZNavigationExtension以后,会莫名其妙的对导航栏造成影响。

#####2、调用最简化: 只需要在三个属性中有不同的两个控制器之间进行设置即可。

举个例子:

设控制器A..B..C.....Z是连续Push、Pop关系,并且只有“D”的导航栏想要显示,其它控制器的导航栏想要隐藏。 这个需求的伪代码为这样:

A.jz_wantsNavigationBarVisible = YES;
D.jz_wantsNavigationBarVisible = NO;
C.jz_wantsNavigationBarVisible = YES; //C与D相邻且jz_wantsNavigationBarVisible值不同
E.jz_wantsNavigationBarVisible = YES; //D与E相邻且jz_wantsNavigationBarVisible值不同

对于C、E设置的代码也完全可以写在能拿到它们实例的D控制器里,而不需要分散设置。

Clone this wiki locally