文档章节

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

cobish
 cobish
发布于 2014/04/22 21:37
字数 389
阅读 3954
收藏 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];
}




© 著作权归作者所有

共有 人打赏支持
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
iOS开发:点击系统的返回按钮,返回到指定的视图

iOS开发:点击系统的返回按钮,返回到指定的视图 字数679 阅读2500 评论15 喜欢18 举个栗子:我们在开发中,有时会遇到这样的情况,有A、B、C三个视图控制器,A中有一个按钮,点击按钮push到...

Youth_关旋
2016/10/12
196
0

没有更多内容

加载失败,请刷新页面

加载更多

安全管理标准

安全生产严重等级分类: 故障频次: 风险等级矩阵:

乔老哥
7分钟前
1
0
数据结构“树”的相关微视频

今天在腾讯视频上闲逛,然後发现一个叫“岚人”的用户上传了几段小视频,基本上都在5分钟以内,讲解了关于树的一些结构和算法。零代码,非常适合初学者入门。不过,对于老鸟来说,这也是非常...

Iridium
19分钟前
0
0
10-利用思维导图梳理JavaSE-Java 集合

10-利用思维导图梳理JavaSE-Java 集合 主要内容 1.Collection接口 2.Set接口 2.1.Set接口概述 2.2.HashSet类 2.3.TreeSet类 2.4.SortedSet接口 3.List接口 3.1.List接口概述 3.2.ArrayList类...

飞鱼说编程
30分钟前
3
0
活动推荐|互联网3.0与区块链新时代论坛(北京)

1 时间地点 **时间:**9月22日 14:00 - 18:00 地点:(北京海淀)西大街70号 3w咖啡 二层 2 活动详情 Harmony创始人Stephen及团队将介绍他们的区块链分片扩容技术。Stephen曾任Apple地图服务...

HiBlock
48分钟前
1
0
如何优雅的删除Redis的大key

关于Redis大键(Key),我们从[空间复杂性]和访问它的[时间复杂度]两个方面来定义大键。前者主要表示Redis键的占用内存大小;后者表示Redis集合数据类型(set/hash/list/sorted set)键,所含有的...

IT--小哥
58分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部