判断当前VC 是push还是present的】的更多相关文章

NSArray *viewcontrollers=self.navigationController.viewControllers; if (viewcontrollers.count>1) { if ([viewcontrollers objectAtIndex:viewcontrollers.count-1]==self) { //push方式 [self.navigationController popViewControllerAnimated:YES]; } } else{ //pr…
网上的姿势,反正我用着不管用 最正确的姿势 NSArray *viewcontrollers = self.navigationController.viewControllers; if (viewcontrollers.count > 1) { if ([viewcontrollers objectAtIndex:viewcontrollers.count - 1] == self) { //push方式 [self.navigationController popViewControlle…
push与present都可以推出新的界面.present与dismiss对应,push和pop对应.present只能逐级返回,push所有视图由视图栈控制,可以返回上一级,也可以返回到根vc,其他vc.present一般用于不同业务界面的切换,push一般用于同一业务不同界面之间的切换. pop一共分为两类, pop是navigationController的方法.第一类就是,直接返回到上一层.[self.navigationController popViewControllerAnima…
在变成过程中,经常遇到两个视图控制器之间的切换,导航控制器即UINaVigation是最常用的一种,有时为了某些效果又需要进行模态切换,即present. 我们的布局经常是在window上加一个nav,然后以viewControl作为nav的根视图进行导航.如果在导航之间有了一个present之后,你会发现当前页面的navigationController是空的,也就是说导航控制器不管用了,该咋弄呢 下面就给大家介绍两种比较有效的方法: 第一:在进行present之前,重新生成一个导航控制器,然…
如果页面中没有导航栏,可以present到这个A页面,在A页面想要跳转到有个有导航栏的页面就需要添加给B页面添加一个UINavigationController 然后present到B页面,代码如下 ChatViewController *cvc = [[ChatViewController alloc]init]; UINavigationController *navi=[[UINavigationController alloc] initWithRootViewController:cv…
当一个UITabbarController管理多个UINavigationController的时候, 我们要从这每一个UINavigationController中push一个ViewController, 如果不作处理,就会出现推出来的ViewController同样会显示TabBar. 去除方法很简单,代码如下: aViewController *controller = [[aViewControlleralloc]init]; [controller setHidesBottomBar…
viewController.isViewLoaded && viewController.view.window…
遍历可变数组的同时删除数组元素 NSMutableArray *copyArray = [NSMutableArray arrayWithArray:array]; NSString *str1 = @“zhangsan”; for (AddressPerson *perName in copyArray) { if ([[perName name] isEqualToString:str1]) { [array removeObject:perName]; } } 获取系统当前语言 NSStr…
在这里总结一些iOS开发中的小技巧,能大大方便我们的开发,持续更新. UITableView的Group样式下顶部空白处理 //分组列表头部空白处理 UIView *view = [[UIViewalloc] initWithFrame:CGRectMake(0, 0, 0, 0.1)]; self.tableView.tableHeaderView = view; UITableView的plain样式下,取消区头停滞效果 - (void)scrollViewDidScroll:(UIScro…
原文链接 在这里总结一些iOS开发中的小技巧,能大大方便我们的开发,持续更新. UITableView的Group样式下顶部空白处理 //分组列表头部空白处理 UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 0, 0.1)]; self.tableView.tableHeaderView = view; UITableView的plain样式下,取消区头停滞效果 - (void)scrollViewDidScroll:(…
#pragma mark 每天总结学习两小时  效率 和 每天学习 研究底层 多进去看看 // ..........................................................................................// //                           _ooOoo_                                                        // //           …
UITableView的Group样式下顶部空白处理 //分组列表头部空白处理 UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 0, 0.1)]; self.tableView.tableHeaderView = view; UITableView的plain样式下,取消区头停滞效果 - (void)scrollViewDidScroll:(UIScrollView *)scrollView { CGFloat sect…
UITableView的Group样式下顶部空白处理 在viewWillAppear里面添加如下代码: //分组列表头部空白处理 CGRect frame = myTableView.tableHeaderView.frame; frame.size.height = 0.1; UIView *headerView = [[UIView alloc] initWithFrame:frame]; [myTableView setTableHeaderView:headerView]; UITabl…
UITableView的Group样式下顶部空白处理 //分组列表头部空白处理 UIView *view = [[UIView alloc] initWithFrame:CGRectMake(, , , 0.1)]; self.tableView.tableHeaderView = view; UITableView的plain样式下,取消区头停滞效果 - (void)scrollViewDidScroll:(UIScrollView *)scrollView { CGFloat section…
1.App名称的修改 许多个人开发者或许会有和我一样的经历,开发一个App途中会想到更合适的名字,这时候变会修改工程名以达到App名称改变的目的,其实你可以一步到位—— 在info.plist中添加一个key(Bundle display name),Value就是你需要的新名字,Run后退回主页面,可以看到你的新App名字在这页面上了,是不是很简单? 2.快速查找工程文件 工程大了,常常不记得哪个文件在哪个文件夹的子目录下,或者记得也得不厌其烦地层层打开,可以在导航栏下方Filter中输入文件…
1:IOS开发基础知识--碎片1 a:NSString与NSInteger的互换 b:Objective-c中集合里面不能存放基础类型,比如int string float等,只能把它们转化成对象才可以存放,就是类NSNumber c:NSDATA与NSString互转 d:去除输入框空格(NSString也适用) f:IBOutlet,IBAction说明 2:IOS开发基础知识--碎片2  a:获得另一个控件器,并实现跳转 b:判断IOS版本 c:Button不同状态下背景图片 d:判断设备…
  1:Masonry 2个或2个以上的控件等间隔排序 /** * 多个控件固定间隔的等间隔排列,变化的是控件的长度或者宽度值 * * @param axisType 轴线方向 * @param fixedSpacing 间隔大小 * @param leadSpacing 头部间隔 * @param tailSpacing 尾部间隔 */ - (void)mas_distributeViewsAlongAxis:(MASAxisType)axisType withFixedSpacing:(CG…
1:解决ios静态库中的类别(category)在工程中不能使用 解决方法为:找到 target 的图标,更改其 Other Linker Flags 为: -all_load 或 -force_load-force_load,后跟随一个文件位置,可以更精确地加载所需文件. 简单点说就是,Objective-C 的动态特性使得需要,为链接器添加一个标签(设置 Other Linker Flags 为 -ObjC)来解决通过 Category 向类添加方法的问题.但这个标签 -ObjC 在 64…
VC1,push VC2  vc2 pop 到vc1  右滑一半,然后取消 vc1 present到vc2  vc2 dismiss到vc1  push和present是不同的.表现在两个vc的didappear和diddisapper的顺序上 6. 如何禁止右滑pop界面 self.navigationController.interactivePopGestureRecognizer.enabled = NO;…
在2013年的时候,我们就已经实现了类似于http地址进行页面跳转, 那个时候,主要是用继承ViewController和给 UIViewController和UINavigationController写类别实现的. 这样虽然也实现了,但是还是有一些不美观,耦合的比较严重. 最近看了一篇博文,受里面的启发,自己重新实现了相关的VC跳转 上面有很多类目, 我只是针对其中的一个类目进行代码编写的: 以下是摘自上述博文: 跨业务页面调用方案的设计 跨业务页面调用是指,当一个App中存在A业务,B业务…
//导航控制器数量 add xjz 判断是push还是present出来的 NSArray *viewcontrollers = self.navigationController.viewControllers; //导航控制器存在导航,并且栈顶是当前控制器 && viewcontrollers.lastObject==self) { //push方式 [self.navigationController popViewControllerAnimated:YES]; } else {…
xcode6 之后push 和modal 就被废弃了.只能用于ios8之前.在拖线的时候我们就可以看见. 这两个方法被废弃了,我们需要找到合适的方法来代替,这时候我们发现 show 和Present Modally 方法,这个一般可以满足我们的使用要求. 下面我列出以下官方是怎么解释的. 官方文档 位置 https://developer.apple.com/library/ios/recipes/xcode_help-IB_storyboard/chapters/StoryboardSegue…
1.push是什么?(推进) push就是推,延伸为推进.这个它是汇编的一个指令,(在其它语言中也可能会见到它).意思都是差不多的,就是把一个元素放入栈中.你可以假想栈是一个放光盘的那种盒子,有底没盖,先push进去的光盘总是要等后push进去的出来后才能出来. 2.pop是什么?(弹出) pop和push相反,它的意思是弹出,就是从栈里弹出一个元素,每次弹出的都是栈顶(光盘盒最上面那个,也就是最后放进去的那个)的那个元素. 3.push和pop的区别? push是推进,pop是弹出. push…
.如何用js判断一个对象是不是Array 1.Array.isArray(obj) 调用数组的isArray方法 2.obj instanceof Array 判断对象是否是Array的实例 3.Object.prototype.toString.call(obj) ==='[object Array]' Object.prototype.toString方法会取得对象的一个内部属性[[Class]],然后依据这个属性,返回一个类似于[object Array]的字符串作为结果,call用来改变…
1.showViewController 先看看说明: You use this method to decouple the need to display a view controller from the process of actually presenting that view controller onscreen. Using this method, a view controller does not need to know whether it is embedded…
文字罗嗦,篇幅较长,只需营养可直接看红字部分. 一个viewController的初始化大概涉及到如下几个方法的调用: initWithNibName:bundle: viewDidLoad viewWillAppear:animated: viewDidAppear:animated: viewWillLayoutSubviews viewDidLayoutSubviews 通常情况这几个方法是依次被调用的,我们会在init方法中初始化一些成员变量,做一些与view无关的事情.而后在viewD…
https://www.jianshu.com/p/39c051cfe7dd CATransition CATransition 是CAAnimation的子类(如下图所示),用于控制器和控制器之间的转场动画.能够来自定义系统的push和present.实现页面间的动画效果. 转场动画就是从一个场景以动画的形式过渡到另一个场景.转场动画的使用一般分为以下几个步骤: 创建转场动画 设置转场类型.子类型(可选)及其他属性画 设置转场后的新视图并添加动画到图层 ios的画面切换的动画效果的API主要通…
没有前言,就是一个简单的键盘监听,自动调整输入框的位置不被键盘遮挡 .h // // JYKeyBoardListener.h // // Created by JianF.Sun on 17/9/26. // Copyright © 2017年 sjf. All rights reserved. // /* 功能: 1.输入框被键盘遮挡时,整个view上移(此时输入框在键盘上方) 2.键盘弹出时,添加一个按钮负责隐藏键盘 3.禁止某控制器使用JYKeyBoardListener 使用: 1.引…
代码地址如下:http://www.demodashi.com/demo/11612.html 路漫漫其修远兮,吾将上下而求索 前记 想研究自定义转场动画很久了,时间就像海绵,挤一挤还是有的,花了差不多有10天的时间,终于对转场动画了解了一点.自从iOS 7以后,我们就可以自定义转场动画,实现我们想要的效果,在这之前,我们先来看一张图,大概了解下,需要知道些什么 相关类联系图 相信各位看官也差不多看完这张图了,下面我们就来简单了解下其中的类和相关的函数 说到转场动画,其实无非就是我们常用的pus…
Goback()方法功能:返回上一级界面,通过判断 popViewControllerAnimated 类型是否为空,来判断是present还是pop出来,然后直接做了releaseSelf操作: - (void)goBack {    IDSLOG(@"self: %@, parent: %@", self, [self parentViewController]);        id page = [self presentingViewController];    IDSLO…