Comments (31)
已经更新了最新的代码。
from jznavigationextension.
如果你设置的jz_wantsNavigationBarVisible这个属性的话,要在push之前设置。
viewController1.jz_wantsNavigationBarVisible = false;
viewController2.jz_wantsNavigationBarVisible = true;
viewController1.navigationController pushTo....:viewController2....;
from jznavigationextension.
你这是隐藏A,显示B。我说的是显示A,隐藏B,然后push,push完成后想再把B显示出来就不行了
from jznavigationextension.
“push完成后想再把B显示出来” 调的哪个方法?
from jznavigationextension.
跟隐藏是同一个属性,YES or NO
from jznavigationextension.
我说了,如果你设置的jz_wantsNavigationBarVisible这个属性的话,要在push之前设置,"jz_wantsNavigationBarVisible"并不会强制隐藏导航栏,它只作用在每次push和pop的时候,如果你想要在当前的页面隐藏,直接调用系统的"setNavigationBarHidden:"。
from jznavigationextension.
A(有导航栏) push (到)B(隐藏了导航栏), B pop 到A 的时候A的导航栏隐藏了,感觉有点反人类啊,还是说这是一个bug
from jznavigationextension.
补充一下,这种情况是在没设置jz_wantsNavigationBarVisible的时候出现的
from jznavigationextension.
这个不是Bug哈。首先阐述一下系统行为:如果A Push 到 B,B把导航栏隐藏了,那么Pop到A的时候,如果A希望显示导航栏,就需要手动调用显示导航栏的方法,否则,当前导航栏是隐藏就隐藏,显示就显示。
在JZNavigationExtension里: 如果A Push 到 B,B把导航栏隐藏了,那么Pop到A的时候,如果A从来没有设置过jz_wantsNavigationBarVisible,那么就会走系统行为。这样做的原因是,不是所有控制器都希望Push或Pop以后默认显示导航栏,如果没有设置过这个方法,那么会和系统行为保持一致。
from jznavigationextension.
不是的,比误会我的意思了,我是说用JZNavigationExtension里任何隐藏Nav的方法,push之后,我不pop,就在B页面里再次把导航栏显示出来,结果是做不到的,希望作者能提供个方法,能够动态设置隐藏或显示,我想这是极好的。
from jznavigationextension.
按照你的说法目前我这里设置是没问题的。
"就在B页面里再次把导航栏显示出来",你是在B控制器的viewDidLoad里写的setNavigationBarHidden:NO吗?如果是在这里写的,我想到一种可能性是,你的viewDidLoad调用早于push或者pop之前,所以没起作用。
from jznavigationextension.
我是说用JZNavigationExtension里的方法不行,用系统的setNavigationBarHidden:NO当然可以隐藏,随时都可以
from jznavigationextension.
建议你仔细阅读一下我的回答。“ "jz_wantsNavigationBarVisible"并不会强制隐藏导航栏,它只作用在每次push和pop”
from jznavigationextension.
我当然知道,我说的是如果在这两个地方以外也能隐藏和显示更好了
from jznavigationextension.
感觉有时候系统行为不一定是最好的行为方式,可以强硬点,设置jz_wantsNavigationBarVisible=no就隐藏,不设置或jz_wantsNavigationBarVisible=yes就显示,不用让它只作用在每次push和pop”
from jznavigationextension.
@q351941406 @wanjinguo 嗯,我觉得你俩说的也有道理。因为这个属性最开始是效仿系统的"hidesBottomBarWhenPushed"的功能设计一点点过度过来的,但是从方便开发的角度讲,这种改进也许更好,我会尝试提交一个版本,供大家测试一下。
from jznavigationextension.
感觉和修改之前没有区别
from jznavigationextension.
还没有更新Pod哈。diff一下最新代码看看
from jznavigationextension.
from jznavigationextension.
你在什么时候设置的,具体说一下?
from jznavigationextension.
A没设置,B设置为NO,C没设置,1. A显示->B隐藏->C隐藏 , 2. A显示->B隐藏->A隐藏, 都是在viewdidload里面设置的
from jznavigationextension.
不设置就会走系统行为,因为A、C中间隔了一个隐藏导航栏的B,所以A、C想要显示,需要设置。不同的项目里默认值是不确定的,不设置就为YES的话会有问题。
from jznavigationextension.
pod没更新前的描述This property may only be used during push/pop function called. Default is YES.还是感觉你之前版本的这个效果更符合大众的想法
from jznavigationextension.
你想想这样的场景:我只有root控制器想显示导航栏,之后连续有10个控制器都不想显示导航栏,这10个控制器互不相连但是都是push进去的。如果是之前不设置就为YES的话,你需要设置10次这个属性。现在的行为的话,你只需要把root控制器设置一次,然后Push过去的第一个控制器设置就一次就好了。之后的都会隐藏。也就是说,现在的行为,你只需要给显示与隐藏之间切换的控制器设置就可以了。
from jznavigationextension.
作者,请问你知道手机淘宝和知乎日报那种push方式是什么样的吗,感觉它们像是push了一个导航栏,而且好多app最近都用了这种push方式,请问是哪个第三方库的,能告知下吗?
from jznavigationextension.
他的push用的自定义的方式。其他三方库不太清楚,许多朋友跟我提到这个,最近我一直在开发这个功能。
from jznavigationextension.
我觉得不是自定义,因为太多app用了,所以肯定有个库的
from jznavigationextension.
JZNavigationExtension新版会集成这个功能。
from jznavigationextension.
这么屌,不可能吧
from jznavigationextension.
@JazysYu
不知道作者几时完成这个功能的集成呢
from jznavigationextension.
遇到了一个奇怪的问题,所以耽误了一些时间,最近在做测试,会在WWDC随后发版。
from jznavigationextension.
Related Issues (20)
- 能加入shadowhidden和shadowalpha功能吗
- 作者你好,请问现在iOS 11有办法解决导航栏高度的问题吗?
- 在9.0 系统下必挂
- 访问相机、相册会crash闪退/报错解决方法 HOT 3
- 这个库还未不维护呢?
- ios11 出现返回按钮偏移,请大神更新
- 请问有禁止侧滑的方法吗?
- Crash on iOS 13/Xcode 11 beta, because private API usage HOT 3
- 这个库是否已经不维护了
- Thread 1: "Access to _UIBarBackground's _backgroundEffectView ivar is prohibited. This is an application bug" HOT 1
- 这里有一个bug,设置 self.navigationBar.barTintColor = [UIColor blueColor]; HOT 6
- 最新版本拍照闪退问题 HOT 1
- jz_viewDidLoad方法中self.delegate = nil会导致一系列问题,如系统相册 HOT 1
- 右滑突然松手的时候 导航栏背景会消失
- 亲测iOS11.2系统高度改不了,在iOS9的手机上没问题
- 侧滑返回时,滑动一点松手,当前控制器导航栏消失
- 侧滑一半导行栏变白问题 HOT 2
- 侧滑返回时,滑动一点松手,当前控制器导航栏消失 HOT 3
- ios11上navigationBarHeight设置失效,ios10以下可以
- 这样写需要考虑一下UINavigationController子类的感受吗?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jznavigationextension.