HidesNavigationBarWhenPushed
这是一个库,它通过hidesNavigationBarWhenPushed
标志增加了在视图控制器被注入时隐藏导航栏的功能。
提示:我使用Apple内部API来实现它。请记住,Apple可能会在应用审查过程中拒绝您的应用程序。
上下文
在开发各种项目期间,我时不时地接到设计要求,A视图控制器需要导航栏,而B视图控制器不需要。这始终是一个头疼的问题。我决定解决这个问题——这就是结果。
我希望许多人也会觉得它很有用。
演示
带有交互式弹出手势识别器
常规的push和pop
要求
- Xcode 9或更高版本
- iOS 11.0或更高版本(可能适用于旧版本,但未进行测试)
- ARC
- Swift 4.1
示例项目
在Xcode中打开并运行`HidesNavigationBarWhenPushedExample`项目,以查看`HidesNavigationBarWhenPushed`的功能。
安装
CocoaPods
pod 'HidesNavigationBarWhenPushed'
手动安装
将`HidesNavigationBarWhenPushed`文件夹添加到您的项目中。
使用方式
- 使用提供的`NavigationController`代替`UINavigationController`
- 使用提供的`ViewController`代替`UIViewController`
- 请使用提供的
NavigationBar
而不是UINavigationBar
(在使用 Interface Builder 时,请确保您明确指定这一点)
《ViewController》 包含一个您必须注意的单一属性:hidesNavigationBarWhenPushed
。
如果新视图控制器的值设置为 true
,而当前视图控制器的值设置为 false
,则在推送新视图控制器时,导航栏将保留在先前的视图控制器中。如果新视图控制器的值设置为 false
,而当前视图控制器的值也设置为 false
,则在推送新视图控制器时,导航栏将只在新视图控制器中存在,而在当前中不存在。
如果这听起来很困惑,请参见上面的演示。
贡献
贡献总是受欢迎的!
联系
Danil Gontovnik
许可
MIT 许可证 (MIT)
版权声明(c)2018 Danil Gontovnik
特此授予任何获得该软件及其相关文档副本(“软件”)的个人免费使用该软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售该软件副本的权利,并准许软件提供者将软件提供给其他人使用,上述使用、复制、修改、合并、发布、分发、再许可和/或销售过程应遵循以下条件:
上述版权声明和本许可声明应包含在所有软件的副本或主要部分中。
本软件按“原样”提供,不提供任何担保,无论是明示的还是暗示的,包括但不限于适销性、特定目的的使用性和非侵权性。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论产生于合同、侵权或其他责任,无论源自、与软件或软件的使用或其他方式相关联。