文档章节

统一添加导航控制器右滑返回手势

cobish
 cobish
发布于 2014/04/22 21:37
字数 389
阅读 3958
收藏 2

一、新建一个控制器,继承UINavigationController

    


二、右滑手势代码

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    // 添加右滑手势
    [self addSwipeRecognizer];
}

#pragma mark 添加右滑手势
- (void)addSwipeRecognizer
{
    // 初始化手势并添加执行方法
    UISwipeGestureRecognizer *swipeRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(return)];
    
    // 手势方向
    swipeRecognizer.direction = UISwipeGestureRecognizerDirectionRight;
    
    // 响应的手指数
    swipeRecognizer.numberOfTouchesRequired = 1;
    
    // 添加手势
    [[self view] addGestureRecognizer:swipeRecognizer];
}

#pragma mark 返回上一级
- (void)return
{
    // 最低控制器无需返回
    if (self.viewControllers.count <= 1) return;
    
    // pop返回上一级
    [self popToRootViewControllerAnimated:YES];
}


三、然后只要在AppDelegate中将自定义的导航控制器设置为根控制器

#import "AppDelegate.h"
#import "MainViewController.h"
#import "FirstViewController.h"

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    // 初始化一个控制器
    FirstViewController *first = [[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil];
    
    // 初始化自定义的导航控制器
    MainViewController *main = [[MainViewController alloc] initWithRootViewController:first];
    
    // 把自定义的导航控制器设置为根控制器
    self.window.rootViewController = main;
    
    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];
    return YES;
}


四、统一成一个导航控制器可以统一一些东西

    1、统一导航栏样式

self.navigationBar.barTintColor = [UIColor whiteColor];

    2、若在控制器之间跳转时需要做一些事情,可在自定义的控制器里添加下面两个方法

#pragma mark push方法
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated
{
    // do something you want
    ...
    
    [super pushViewController:viewController animated:animated];
}

#pragma mark pop方法
- (UIViewController *)popViewControllerAnimated:(BOOL)animated
{
    // 比如停止网络请求
    ...
    
    return [super popViewControllerAnimated:animated];
}




© 著作权归作者所有

共有 人打赏支持
上一篇: 页面跳转
下一篇: 创建tableview
cobish
粉丝 33
博文 150
码字总数 45747
作品 0
深圳
私信 提问
论坛源码推荐(4月28日):列表项目的波浪效果 兼容iOS 6与iOS 7的自定义导航条

Flow 基于手势的教程框架,以用户熟悉的手势来驱动用户界面。灵感来自于Facebook Paper。 测试环境:Xcode 5.0,iOS 4.3以上 AMWaveTransition 带有表格的视图控制器切换效果,点击每个栏目会...

mingxun
2014/04/29
0
0
侧滑后返回导航条变小

手势右滑显示左侧菜单,点击左侧菜单按钮push到下一个控制器,返回后还是显示手势右滑时候的界面,此时手势右滑页面的导航条变短了,请问大神这是什么问题,怎么解决? 第一张图是没侧滑显示...

t_fancy
2016/04/01
91
0
iOS 隐藏导航栏加全屏右滑手势

iOS开发过程中 经常能遇见单个页面需要将导航栏隐藏的需求,运用系统的方法隐藏功能虽然也能实现,但使用返回手势时总感觉让人有些别扭,举个反例 反例.gif 明显的返回时的动画效果极差,而且...

Mikebanana
2016/10/13
0
0
全新的手势,侧滑返回、全局右滑返回都OUT啦!

前言 Android快速开发框架-ZBLibrary 最近将以前的全局右滑返回手势改成了 底部左右滑动手势。 为什么呢?为了解决滑动返回手势的问题。 目前有3种滑动返回手势 一、侧滑返回 代表app: 微信...

孤独的探索号
2016/06/12
633
1
UINavigation导航栏和UITabbar布局和样式

自定义UITabBarController 可以在ViewDidLoad里设置子控制器。当然其他地方也是可以的,但是放在这里可以更加有条理。 初始化 设置导航和tab标题 定义选中和普通状态下的图片 设置选中和普通...

云飞扬v5
2015/08/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

thinkphp门窗定制电商平台-尺寸定制页面

这个门窗定制电商平台的目标是,消费者通过门窗定制平台,上传要定制门窗的尺寸数据下订单,电商平台分派订单给厂家商家定制商品,由厂家商家直接发货给消费者。消费者的资金托管在电商平台里...

乐兔CRM
14分钟前
3
0
全局光照---小结

中国龙-扬科
16分钟前
0
0
LAMP架构设置防盗链及访问控制

11月19日任务 11.25 配置防盗链 11.26 访问控制Directory 11.27 访问控制FilesMatch 配置防盗链 为什么要配置防盗链 第三方的站点可以通过引用的方式来获取本服务器上的资源如图片等,但是相...

robertt15
16分钟前
1
0
AWS 推出长期支持的 OpenJDK 免费分发版本 —— Amazon Corretto

简评:听说 Oracle JDK 要收费了,Oracle 要限制 Java 的商业或生产用途,针对这个问题,AWS 将会推出 Amazon Corretto。 Java 是 AWS 用户使用的最流行的编程语言之一,亚马逊一直致力于支持...

极光推送
22分钟前
1
0
Cloudinit如何判断虚拟机为初始化状态

Cloudinit简介 cloudinit是专为云环境中虚拟机的初始化而开发的工具,它从各种数据源读取相关数据并据此对虚拟机进行配置。常见的数据源包括:云平台的metadata服务、ConfigDrive等,常见的配...

空灵飞渡
33分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部