iOS开发——导航控制器返回按钮,返回到指定界面

大家都知道导航控制器中的返回按钮,会返回到上一个页面,但有时项目中有特殊要求,需要返回到指定的页面,我是这么实现的。

1、

首先是监听这个返回按钮的方法,我是通过自定义返回按钮监听的。

//    自定义返回按钮

self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"back-1x"] style:(UIBarButtonItemStyleDone) target:self action:@selector(backBtn)];

2、

然后遍历导航控制器中的控制器,当遍历到需要返回到指定页面的控制器时候,直接break,重新添加到导航控制器中,就是这个思路,下面贴上代码。

#pragma mark - 点击返回按钮,回到指定页面

- (void)backBtn

{

UINavigationController *navigationVC = self.navigationController;

NSMutableArray *viewControllers = [[NSMutableArray alloc] init];

//    遍历导航控制器中的控制器

for (UIViewController *vc in navigationVC.viewControllers) {

[viewControllers addObject:vc];

//        CourseTableController就是你需要返回到指定的控制器名称,这里我需要跳转到CourseTableController这个控制器

if ([vc isKindOfClass:[CourseTableController class]]) {

break;

}

}

//    把控制器重新添加到导航控制器

[navigationVC setViewControllers:viewControllers animated:YES];

[navigationVC popViewControllerAnimated:YES];

}

这样就可以直接返回到指定页面了,希望可以帮助到大家。

时间: 2024-10-05 05:01:43

iOS开发——导航控制器返回按钮,返回到指定界面的相关文章

IOS UINavigationController 导航控制器

/** 导航控制器掌握: 1.创建导航控制器 UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:self.viewController]; 2.zhan (zhan 中所有的子控制器) self.navigationController.viewControllers; 3.将控制器压入zhan 中 [self.navigationController pushView

IOS开发中UIBarButtonItem上按钮切换或隐藏实现案例

IOS开发中UIBarButtonItem上按钮切换或隐藏案例实现案例是本文要介绍的内容,这个代码例子的背景是:导航条右侧有个 edit button,左侧是 back button 和 add button. AD:[线下活动]三大新锐HTML 5企业汇聚51CTO—大话移动前端技术 IOS开发中UIBarButtonItem上按钮切换或隐藏案例实现案例是本文要介绍的内容,这个代码例子的背景是:导航条右侧有个 edit button,左侧是 back button 和 add button.代

iOS 为导航栏自定义按钮图案Button Image 运行出来的颜色与原本颜色不一样 -解决方案

为相机制作闪光灯,在导航栏自定义了"闪光"图案,希望点击时变换图片,但是一直没有改变,原来是因为设置了Global Tint的颜色,所以系统会自动把图片的颜色改为Global Tint的颜色. 解决方案,设置图片时,添加:imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal 源码: - (void) setFlashOn:(BOOL)isOn { if (self.captureDevice.hasFlash) { UIIm

iOS彩票项目--第五天,新特性引导页的封装、返回按钮的自定义、导航控制器的滑动返回以及自定义滑动返回功能

一.上次实现了在AppDelegate中通过判断app版本决定是否进入新特性页面,今天将AppDelegate中的一坨进行了封装.将self.window的根控制器到底应该为新特性界面,还是主页面,封装到了导航工具类ChaosGuideTool 封装,先决定外面怎么用,然后实现方法.外部通过类方法调用  + (UIViewController *)chooseRootVC; 外部的APPDelegate 只是调用方法 之前的业务判断没有改变,只是将数据的存储进行了封装 二.返回按钮的自定义 <1

iOS 中导航控制器全屏向右滑动返回上一界面

在iOS中,导航控制器默认就自带了侧滑功能,当用户在界面的左边(左边边缘)滑动的时候,才会有侧滑功能.但是我们往往在开发的过程中需要在屏幕的任意位置滑动,都需要返回到上一个界面. 多说无意,直接看代码: 效果图部分: 代码部分(第二个界面): #import "CJSecondViewController.h" @interface CJSecondViewController ()<UIGestureRecognizerDelegate> @end @implementa

IOS 自定义导航栏标题和返回按钮标题

IOS中自定义导航栏标题: UILabel *titleText = [[UILabel alloc] initWithFrame: CGRectMake(160, 0, 120, 50)]; titleText.backgroundColor = [UIColor clearColor]; titleText.textColor=[UIColor whiteColor]; [titleText setFont:[UIFont systemFontOfSize:17.0]]; [titleTex

iOS开发中如何将后台返回的时间转换为常见字串

在iOS开发中,经常需要从后台数据中获取时间,但是此时后台返回的时间格式经常是一串类似"123456789"的数字,此数字是1970年开始截至到现在的秒数,此时我们需要将其转换为可以用的格式. 模型中我定义了c_time属性,通过重写c_time的get方法中进行格式的转换. - (NSString *)c_time{ // 1.创建时间格式化类 NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; // 2.设置时间

iOS开发 - UIViewController控制器管理

创建一个控制器 控制器常见的创建方式有以下几种 //通过storyboard创建 //直接创建 ViewController *vc = [[ViewController alloc] init]; //指定xib文件来创建 ViewController *vc = [ViewController alloc] initWithNibName:@"ViewController" bundle:nil]; 通过storyboard创建控制器 //先加载storyboard文件(Test是

IOS之导航控制器

UINavigationController是用于构建分层应用程序的主要工具,主要采用栈形式来实现视图.任何类型的视图控制器都可放入栈中.在设计导航控制器时需要指定根视图即用户看到的第一个视图.根视图控制器是被导航控制器推入到栈中的第一个视图控制器.当用户查看下一个试图时,栈中将加入一个新的视图控制器,它所控制的视图将展示给用户.我们可以通过导航按钮来操作分层的应用程序,用它来控制视图的推入或推出. 1.把子控制器添加到导航控制器中常用的方法 //创建视图控制器 JRViewController