ios appdelegate中获取当前显示页

网上有很多种方法,但是都不好使,找到了这个好使的,和大家分享下。

 1 -(UIViewController *)currentViewController
 2 {
 3     UIViewController * currVC = nil;
 4     UIViewController * Rootvc = self.window.rootViewController ;
 5     do {
 6         if ([Rootvc isKindOfClass:[UINavigationController class]]) {
 7             UINavigationController * nav = (UINavigationController *)Rootvc;
 8             UIViewController * v = [nav.viewControllers lastObject];
 9             currVC = v;
10             Rootvc = v.presentedViewController;
11             continue;
12         }else if([Rootvc isKindOfClass:[UITabBarController class]]){
13             UITabBarController * tabVC = (UITabBarController *)Rootvc;
14             currVC = tabVC;
15             Rootvc = [tabVC.viewControllers objectAtIndex:tabVC.selectedIndex];
16             continue;
17         }
18 //        else if ([Rootvc isKindOfClass:[XXXCustom class]]){
19 //            XXXCustom * tabVC = (XXXCustom *)Rootvc;
20 //            currVC = tabVC;
21 //            Rootvc = tabVC.selectedViewController;
22 //            continue;
23 //        }
24     } while (Rootvc!=nil);
25
26
27     return currVC;
28 }
时间: 2024-08-18 02:51:51

ios appdelegate中获取当前显示页的相关文章

iOS开发中获取视图在屏幕上显示的位置

在iOS开发中,我们会经常遇到一个问题,例如,点击一个按钮,弹出一个遮罩层,上面显示一个弹框,弹框显示的位置在按钮附近.如果这个按钮的位置相对于屏幕边缘的距离是固定的,那就容易了,可以直接写死位置.可是,如果按钮是在UITableView的cell上呢?随着UITableView的滚动,按钮可能在顶部,也可能在底部,还可能在中间,左侧.右侧都有可能,那么,这个时候,怎么去计算按钮所在的位置呢?如果按钮所在的UITabelView是在另外一个UIScrollView的一个cell上呢?如果外面再有

ios 开发中获取字符串中重复的字符的rang

iOS 开发中经常会遇到处理字符串的问题,对于一个字符串经常会遇见里面包含重复的字符需要对重复的字符进行处理,下面的代码就是对重复字符进行处理的操作,具体代码如下所示: /** * 返回重复字符的location * * @param text 初始化的字符串 * @param findText 查找的字符 * * @return 返回重复字符的location */ - (NSMutableArray *)getRangeStr:(NSString *)text findText:(NSStr

从网络中获取图片显示到Image控件并保存到磁盘

一.从网络中获取图片信息: 1 /// <summary> 2 /// 获取图片 3 /// </summary> 4 /// <param name="url">Url</param> 5 /// <returns>BitmapImage</returns> 6 public BitmapImage GetImage(string url) 7 { 8 BitmapImage image=null; 9 try

iOS项目中获取验证码倒计时及闪烁问题解决方案

大家在做验证码的时候一般都会用到倒计时,基本上大家实现的方式都差不多,先贴出一些代码来.. -(void)startTime{ __block int timeout= 59; //倒计时时间 dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); dispatch_source_t _timer = dispatch_source_create(DISPATCH_SOURCE

IOS 程序中状态栏的显示与隐藏

项目中有时需要将顶部的状态栏给隐藏掉,在网上搜了搜基本上都不能用,原因大概是当程序运行的时候状态栏已经显示出来,然后再调状态栏的set方法会不起作用(至于为什么不起作用还不清楚). 隐藏状态栏方法1: 修改plist文件,添加 Status bar is initially hidden  当设置成为YES时,程序启动的时候就隐藏了(启动页也不显示) 添加View controller-based status bar appearance   设置为NO 这种修改方法会隐藏整个项目中的状态栏(

iOS开发中获取文件路径的方法介绍

1.首先要知道什么是沙盒? 沙盒就是每一个应用程序安装完毕之后在本地生成的一个文件夹,就叫做沙盒文件.下面是沙盒的一个路径展示: 可以看到: iphone沙箱模型的有四个文件夹,分别是什么,永久数据存储一般放在什么位置,得到模拟器的路径的简单方式是什么?下面就详细的一一道来: 分别是:documents,tmp,app,Library. 而获取APP的沙盒的函数是:(NSHomeDirectory(), 手动保存的文件在documents文件里 Nsuserdefaults保存的文件在Prefe

iOS开发中,获取手机相关的参数信息

1.获取运行商需要导入 #import <CoreTelephony/CTCarrier.h> #import <CoreTelephony/CTTelephonyNetworkInfo.h> 2.代码如下 //设备唯一标识符 NSString *identifierStr = [[[UIDevice currentDevice] identifierForVendor] UUIDString]; NSLog(@"设备唯一标识符:%@",identifierSt

iOS开发中,获取iOS设备型号

1.首先要导入头文件 #import <sys/utsname.h> 2.代码如下 - (NSString *)getDeviceVersionInfo{ struct utsname systemInfo; uname(&systemInfo); NSString *platform = [NSString stringWithFormat:@"%s", systemInfo.machine]; //    //返回  iPhone iPod iPad //   

IOS开发中获取对于scrollView拖动距离

func scrollViewDidScroll(scrollView: UIScrollView) { println("offsetY : \(-scrollView.contentInset.top - scrollView.contentOffset.y)"); var offsetY = -scrollView.contentInset.top - scrollView.contentOffset.y; }