成都创新互联网站制作重庆分公司

ios开发返回按钮,ios 右侧返回

iOS 调整导航栏返回按钮的位置

UIButton* leftBtn = [UIButtonbuttonWithType:UIButtonTypeSystem];

创新互联主营灵山网站建设的网络公司,主营网站建设方案,成都App定制开发,灵山h5成都小程序开发搭建,灵山网站营销推广欢迎灵山等地区企业咨询

leftBtn.frame=CGRectMake(0,0,25,25);

[leftBtnsetBackgroundImage:[UIImageimageNamed:@"icon_back"]forState:UIControlStateNormal];

[leftBtnaddTarget:selfaction:@selector(leftBarBtnClicked:)forControlEvents:UIControlEventTouchUpInside];

UIBarButtonItem* leftBarBtn = [[UIBarButtonItemalloc]initWithCustomView:leftBtn];

UIBarButtonItem* spaceItem = [[UIBarButtonItemalloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpacetarget:nilaction:nil];

spaceItem.width= -15;

self.navigationItem.leftBarButtonItems=@[spaceItem,leftBarBtn];

iOS app 右滑返回

前提条件,存在A和B两个页面,A是主界面,A push 到 B

方法一:如果B页面的返回按钮要用自定义的按钮(在iOS7中,如果使用了UINavigationController,那么系统自带的附加了一个从屏幕左边缘开始滑动可以实现pop的手势。但是,如果自定义了navigationItem的leftBarButtonItem,那么这个手势就会失效。)

在A界面:

- (void)viewDidAppear:(BOOL)animated {

self.navigationController.interactivePopGestureRecognizer.delegate = (id)self;//重新设置代理

self.navigationController.interactivePopGestureRecognizer.enabled = NO;//本页面不能右滑

}

在B里面:

设置返回按钮:

UIButton *backBtn = [UIButton buttonWithType:UIButtonTypeCustom];

backBtn.frame = CGRectMake(5, 2, 21, 35);

[backBtn setImage:[UIImage imageNamed:@"back"] forState:UIControlStateNormal];

[[backBtn rac_signalForControlEvents:UIControlEventTouchUpInside] subscribeNext:^(id x) {

[self.navigationController popViewControllerAnimated:YES];

}];

UIBarButtonItem *backItem = [[UIBarButtonItem alloc] initWithCustomView:backBtn];

self.navigationItem.leftBarButtonItem = backItem;

self.navigationController.interactivePopGestureRecognizer.enabled = YES;//最重要的一步

方法二:在A页面里面(A页面里面的backBarButtonItem其实就是我们看到的B页面的返回按钮,B页面的leftBar是左侧的按钮,注意优先级,B里面有自定义leftBar,显示B页面的,如果没有,看A界面,如果里面有backBarButtonItem,显示,如果没有,就是系统默认的那个)

UIImage* image = [UIImage imageNamed:@"back"];

UIBarButtonItem *item = [[UIBarButtonItem alloc] init];

[item setBackButtonBackgroundImage:[image resizableImageWithCapInsets:UIEdgeInsetsMake(0, image.size.width, 0, 0)] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

[item setBackButtonTitlePositionAdjustment:UIOffsetMake(-400.f, 0) forBarMetrics:UIBarMetricsDefault];

self.navigationItem.backBarButtonItem = item;

self.navigationItem.backBarButtonItem = item;

我采用的是方法一,方法二我没有办法调整返回按钮的位置

iOS 开发 监听侧滑返回的系统方法

//开启侧滑

1.第一次push进来的时候两个方法都会调用,parent的值不为空。

2.当开始使用系统侧滑的时候,会先调用willMove,而parent的值为空;

3.当滑动结束后返回了上个页面,则会调用didMove,parent的值也为空,如果滑动结束没有返回上个页面,也就是轻轻划了一下还在当前页面,那么则不会调用didMove方法。

当然,直接点击返回按钮,这两个方法也会调用。可以判断parent的值是否为空,进行具体的操作。

//开启侧滑

//关闭侧滑

-(void)viewDidAppear:(BOOL)animated{

[super viewDidAppear:YES];

}

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

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

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

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

1、重写返回按钮

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

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

2、为 UINavigationController 添加 category

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

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


本文名称:ios开发返回按钮,ios 右侧返回
网站地址:http://cxhlcq.com/article/dsigoii.html

其他资讯

在线咨询

微信咨询

电话咨询

028-86922220(工作日)

18980820575(7×24)

提交需求

返回顶部