iOS 导航栏-返回按钮-自定义

iOS 导航栏-返回按钮-自定义,第1张

在开发过程中,我们经常遇到使用系统导航栏的功能,如何更改返回按钮的样式呢?

重写返回按钮一般是添加leftBarButtonItems。如果导航栏添加了leftBarButtonItems之后,会自裤陪弊动隐藏返回按钮backBarButtonItem。

当我们使用了系统的导航栏时,默认点击返回按钮是 pop 回上一个界面。但是在有时候,我们需要在点击导航栏的返回按钮时不一定要 pop 回上一界面,可能是其他的页面,我们需要拦截返回按钮的pop *** 作。

1、重写返回按钮

具体 *** 作查看上乱歼面“二、重写返回按钮”。

缺点 :若重写了某个界面胡族的返回按钮,感觉应用整体就不统一了。而且每有一个界面有这个需求都需要重新自定义一个返回按钮,显得不优雅,工作繁琐。

2、为 UINavigationController 添加 category

我们可以为 UINavigatonController 创建一个 Category,来定制navigationBar: shouldPopItem: 的逻辑。

使用时,只需要在需要拦截返回按钮事件的控制器中,应用#import "UIViewController+BackButtonHandler.h",并重写-(BOOL)navigationShouldPopOnBackButton方法即可。

1、登录账号

2、进入店铺后台,装修点导航栏的“编辑”按钮。进入编辑状态中:选择添加

3、点击“添加”按钮后出现如下图,可埋慧以按分类选择,出现在导航栏的分类。或者自定义,最后选择好后点击确认。

4、也可厅羡以添加“页面”到导航栏。自己写一些故事等吸引顾客(图1)。或者自弯伏答定义一些内容

5、最后,可以调节一下导航栏的位置。

以返侍瞎回按钮为例。返回按钮自定义之后位置有些偏右,因为导航栏的NavigationItem是个比较特殊的View,所以我们无法通过简单的调整Frame来的调整左右按钮的位置。可以使用苹果提供的 UIButtonBarItem 中有个叫做 UIBarButtonSystemItemFixedSpace 的控件调整位置。

手势生效

如果自定义导航栏按高谈姿戚绝钮会使滑动手势失效。只要重新添加导航栏的 interactivePopGestureRecognizer 的 delegate 手势即可回归。

self.navigationController.interactivePopGestureRecognizer.delegate = self


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11992388.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存