你是想点击链接实现页面的返回
[self.navigationController popViewControllerAnimated:YES];
还是想点击上面的返回键,回到网页的上一页
-(id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
// 下一个界面的返回按钮
UIBarButtonItem *temporaryBarButtonItem = [[UIBarButtonItem alloc] init];
temporaryBarButtonItem.title = @"back";
temporaryBarButtonItem.target = self;
temporaryBarButtonItem.action = @selector(back:);
self.navigationItem.backBarButtonItem = temporaryBarButtonItem;
}
return self;
}
-(void) back
{
if ([webView canGoBack]) {
[webView goBack];
}
else
{
[self.navigationController popViewControllerAnimated:YES];
}
}
分享评论 |
1、创建一个UINavigationViewController的子类TNPanNavigationController
@interface TNPanNavigationController : UINavigationController
12
2、构建一个存放截屏图片的数组 并在TNPanNavigationController初始化的时候一起进行初始化,并在此时为TNPanNavigationController添加滑动手势
@interface TNPanNavigationController ()
{
NSMutableArray *_screenShots; //截屏图片数组
}
-(instancetype)initWithRootViewController:(UIViewController *)rootViewController{
self = [super initWithRootViewController:rootViewController];
if (self) {
_screenShots = [NSMutableArray array];
UIPanGestureRecognizer *panGestureRecognizer =
[[UIPanGestureRecognizer alloc]initWithTarget:self
action:@selector(handlePanGesture:)];
[self.view addGestureRecognizer:panGestureRecognizer];
}
return self;
}12345678910111213141516
3、截屏方式
//获取截屏图片
- (UIImage *)getCurrentScreenShot{
UIGraphicsBeginImageContextWithOptions(KEYWINDOW_BOUNDS.size, NO, 0.0);
[KEYWINDOW.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}123456789
4、编写滑动事件,调取_screenShots中上一个界面的图像并设置透明度为0.5,当触发滑动事件的时候,随着水平滑动方向上偏移量的变化,上一个界面不断移入手机界面中并且透明度逐渐升高。
当滑动事件结束之后,判断水平方向上偏移量的变化,该偏移量是否允许返回上一个界面。