文档章节

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

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

没有更多内容

加载失败,请刷新页面

加载更多

centos7重置密码、单用户模式、救援模式、ls命令、chmod命令

在工作当中如果我们错误的配置了文件使服务器不能正常启动或者忘记密码不能登录系统,如何解决这些问题呢?重装系统是可以实现的,但是往往不能轻易重装系统的,下面用忘记密码作为例子讲解如...

李超小牛子
今天
3
0
Python如何开发桌面应用程序?Python基础教程,第十三讲,图形界面

当使用桌面应用程序的时候,有没有那么一瞬间,想学习一下桌面应用程序开发?行业内专业的桌面应用程序开发一般是C++,C#来做,Java开发的也有,但是比较少。本节课会介绍Python的GUI(图形用...

程序员补给栈
今天
5
0
kafka在的使用

一、基本概念 介绍 Kafka是一个分布式的、可分区的、可复制的消息系统。它提供了普通消息系统的功能,但具有自己独特的设计。 这个独特的设计是什么样的呢? 首先让我们看几个基本的消息系统...

狼王黄师傅
今天
3
0
Android JNI总结

0x01 JNI介绍 JNI是Java Native Interface的缩写,JNI不是Android专有的东西,它是从Java继承而来,但是在Android中,JNI的作用和重要性大大增强。 JNI在Android中起着连接Java和C/C++层的作...

天王盖地虎626
昨天
3
0
大数据教程(11.8)Hive1.2.2简介&初体验

上一篇文章分析了Hive1.2.2的安装,本节博主将分享Hive的体验&Hive服务端和客户端的使用方法。 一、Hive与hadoop直接的关系 Hive利用HDFS存储数据,利用MapReduce查询数据。 二、Hive与传统数...

em_aaron
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部