IOS 下获取 rootviewcontroller 的版本不同的问题解决办法
IOS 下获取 rootviewcontroller 的版本不同的问题解决办法
一般 原生的
[[UIApplication sharedApplication].keyWindow.rootViewController presentModalViewController:self animated:NO];
可以 获取 系统的 rootviewcontroller
但 cocos2d-x 2.1.1 在 appcontroller.mm 内定义的 加载方法是
// Set RootViewController to window if ( [[UIDevice currentDevice].systemVersion floatValue] < 6.0) { // warning: addSubView doesn't work on iOS6 [window addSubview: viewController.view]; } else { // use this method on ios6 [window setRootViewController:viewController]; }
也就是说 只有在 ios6 下 才设置rootview 其他时候是 使用addsubview的方法 加载。
所以 相应的 获取 rootviewcontroller方法 要改为。
if ( [[UIDevice currentDevice].systemVersion floatValue] < 6.0) { // warning: addSubView doesn't work on iOS6 NSArray* array=[[UIApplication sharedApplication]windows]; UIWindow* win=[array objectAtIndex:0]; UIView* ui=[[win subviews] objectAtIndex:0]; UIViewController* ctrol=(UIViewController*)[ui nextResponder]; } else { // use this method on ios6 UIViewController* ctrol=[UIApplication sharedApplication].keyWindow.rootViewController]; }
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
相关推荐
-
iOS中lebel特殊字符的自动换行问题解决
前言 今天在工作被一个同事问,如果在label自动换行的时候,碰到特殊的字符串时候,我不想特殊字符串换行分开,该如何实现??? 问题图片 说一下刚看到这个问题的时候,自己的思路: 1.想将事件字符串转化成一个图片,在使用NSTextAttachment结合NSAttributedString,来将图片显示在label上面,但是百度下将将文字转化成图片,看了一下,这么长的代码,列表上面太多的回复,考虑到性能的要求,果断放弃了. 2.计算回复内容的最后一个字符的frame,在去计算时间的长度,总和来
-
iOS中WKWebView白屏问题的分析与解决
前言 随着WKWebView的推出, 解决了很多UIWebView 的问题.比如加载速度慢,内存泄露等问题.WKWebView是在iOS 8 推出,前段时间正好把项目也适配到iOS 8 以上了,终于可以把项目中的UIWebView 替换成WKWebView. WKWebView的特点: 性能高,稳定性好,占用的内存比较小, 支持JS交互 支持HTML5 新特性 可以添加进度条(然并卵,不好用,还是习惯第三方的). 支持内建手势, 据说高达60fps的刷新频率(不卡) 但是发现在使用的时候还是有很
-
nuxt+axios解决前后端分离SSR的示例代码
背景:由于后端程序猿通常对CSS .JS掌握不是特别好,通常的开发模式,UI把静态html做好交给程序猿,程序猿开发,把静态html变成动态的时候经常会有各种样式错乱的问题,并且要迎合上级一天三遍样式需求,因此决定用前后端分离.考虑到网站的推广,又必须做SEO.前端框架选择VUE,解决SSR顺便选择了nuxt.js,此为背景. 一.准备工作 1.安装nodejs 2.安装vuejs 3.安装vue-cli 4.安装nuxt 二.创建nuxt项目并配置 找一个自己喜欢的目录,作为你的worksp
-
详解iOS11关于导航栏问题
前言 iOS11导航栏除了新加入了largeTitles和searchController两个新特性,可能是加入largeTitles的原因其结构较iOS 10发生了些变化. iOS11之前导航栏的navigationBarButton则直接添加在navigationBar上面 在iOS11之后,苹果添加了新的类来管理,可以看到titleView直接加在_UINavigationBarContentView上,UIBarButtonItem则添加在_UIButtonBarStackView上面,
-
iOS开发之一些实用小知识点总结
话不多说,直接进主题 一.防止UIButton,cell等重复点击 主要是快速点击button或者cell,所对应的action或者逻辑会走多次,例如:点击button或者cell调用拨打电话的方法,会弹出拨打电话框好多次:这个对用户不太友好:问了下哥们儿,他给了个宏,目前算是解决这个问题:代码如下: // 防止多次调用 #define kPreventRepeatClickTime(_seconds_) \ static BOOL shouldPrevent; \ if (shouldPrev
-
关于适配iOS11和iPhoneX的一些事
前言 众所周知iOS11正式版终于来了,最近也把app适配了一下,其实也不是很麻烦,来看看我做的一些操作,话不多说了,来一起看看吧. 1.UITableView.UICollectionView的变化 tableView在iOS11默认使用Self-Sizing,tableView的estimatedRowHeight.estimatedSectionHeaderHeight. estimatedSectionFooterHeight三个高度估算属性由默认的0变成了UITableViewAuto
-
IOS 下获取 rootviewcontroller 的版本不同的问题解决办法
IOS 下获取 rootviewcontroller 的版本不同的问题解决办法 一般 原生的 [[UIApplication sharedApplication].keyWindow.rootViewController presentModalViewController:self animated:NO]; 可以 获取 系统的 rootviewcontroller 但 cocos2d-x 2.1.1 在 appcontroller.mm 内定义的 加载方法是 // Set RootVie
-
iOS如何获取屏幕宽高、设备型号、系统版本信息
介绍 在我学习Android开发的时候,觉得设备适配是件很头疼的事情,android的设备太多了,那时就很羡慕iOS开发的人不用操心适配的问题,而当我开始学习iOS开发后,iOS的屏幕也开始多种多样了起来...于是也得做适配了,sad... 之前也研究过,这里把我的方法记录下来,本文介绍三个常用的设备信息获取方式: 获取屏幕的宽高.用于在设置控件位置的时候计算相对屏幕的距离 获取设备的型号.5s和6+的屏幕大小相差很远,相应的控件位置.大小都需要做出调整,不然就会出现在6+上显得很空旷或者在5s
-
iOS如何获取最顶层ViewController详解
1 获取当前屏幕显示的 Viewcontroller //获取当前屏幕显示的viewcontroller - (UIViewController *)getCurrentVC { ///下文中有分析 UIViewController *rootViewController = [UIApplication sharedApplication].keyWindow.rootViewController; UIViewController *currentVC = [self getCurrentV
-
iOS 下的图片处理与性能优化详解
图片在计算机世界中怎样被存储和表示? 图片和其他所有资源一样,在内存中本质上都是0和1的二进制数据,计算机需要将这些原始内容渲染成人眼能观察的图片,反过来,也需要将图片以合适的形式保存在存储器或者在网络上传送. 这种将图片以某种规则进行二进制编码的方式,就是图片的格式. 常见的图片格式 图片的格式有很多种,除了我们熟知的 JPG.PNG.GIF,还有Webp,BMP,TIFF,CDR 等等几十种,用于不同的场景或平台. 这些格式可以分为两大类:有损压缩和无损压缩. 有损压缩:相较于颜色,人眼对光
-
iOS如何获取当前View所在控制器的方法
前言 不知道大家有没有遇到过在做轮播图的时候,有点轮播图展示的是广告,有的是活动,等等还有其他的,当前点击某个轮播的时候要跳转到不同的控制器,点击事件是在控制器写的,为了避免控制器代码过多,显示的臃肿.我创建了一个UIWindow的分类,暂且叫Model (GetCurrentVC) 实现方法 谷歌还有很多方法,下面这个方法亲测有效,有需要的可以参考借鉴. 一: @interfaceUIWindow (GetCurrentVC) - (UIViewController*)getCurrentVC
-
IOS中获取本地通讯录联系人以及汉字首字母排序
iOS中获取手机通讯录中的联系人信息: /*** 加载本地联系人*/ - (void)loadLocalContacts { //新建一个通讯录类 ABAddressBookRef addressBooks = nil; if (DeviceVersion < 6.0) { addressBooks = ABAddressBookCreate(); } else { addressBooks = ABAddressBookCreateWithOptions(NULL, NULL); //获取通讯
-
Android开发实现在Wifi下获取本地IP地址的方法
本文实例讲述了Android开发实现在Wifi下获取本地IP地址的方法.分享给大家供大家参考,具体如下: 代码核心介绍: WifiManager类提供了对设备Wifi功能的管理,包括Wifi开关的打开和关闭,IP地址获取等等,早期的Android版本甚至支持对于IP的设置.在这里仅介绍其简单的一个小应用--获取IP地址. 首先先添加Uses-Permission:CHANGE_WIFI_STATE,WAKE_LOCK和ACCESS_WIFI_STATE.代码如下(AndroidManifest.
-
微信小程序在ios下Echarts图表不能滑动的问题解决
问题现象 这个问题的现象说起来很简单. 小程序页面中有一篇很长的文章,内部有一个Echarts图表,手指上下滑动观看内容. 但是手指滑动区域在Echarts图表上时,页面却不能滑动了. 如下图: 追踪问题原因 因为在小程序上渲染图表用到的是echarts-for-weixin这个组件,而这个组件确实不支持一些Echarts功能. 所以最开始我怀疑是这个组件的问题,认为它把我的滑动事件给吞了. 为了确认这个问题,我直接在这个组件ec-canvas旁加了个兄弟节点view,然后用绝对定位将其覆盖在e
-
解决iOS下无法触发focus事件的问题
前提 我的思路需要在点击事件之后,先让一个input元素失去焦点,再让另一个input 元素获取到焦点,代码如下: $('#xd_content .tabcontent .nav').on('click', function () { $('#xd_content ').blur(); setTimeout(function () { $('#search .shop-search-ipt').focus(); }, 400); }); 发现安卓稳定出现小键盘,但是ios不触发键盘.找了半天,发
-
Android自定义控件仿ios下拉回弹效果
网上有很多类似的文章,大多数还是继承listview来实现(主要是listview.addHeaderView()和listview.addFooterView在listview的首尾添加view,也可以用上面的两个listview自带函数实现下拉刷新的功能,在这里不准备介绍,有兴趣的朋友可以去自己试试). 在本文主要是给android的线性布局(相对布局.帧布局)加上下拉或者上拉回弹得效果.在ios中我们经常能看到,在一个页面中即使是只有一个控件,这一个控件只占整个页面的1/10不到,但是当我
随机推荐
- JSP中param动作的实例详解
- .net实现webservice简单实例分享
- Java多线程编程之CountDownLatch同步工具使用实例
- Jackson的用法实例分析
- 基于springMvc+hibernate的web application的构建
- IOS中UITextView或UITextField字数限制的实现
- JS获取一个未知DIV高度的方法
- Javascript点击其他任意地方隐藏关闭DIV实例
- php设计模式 Singleton(单例模式)
- jQuery Validate 验证,校验规则写在控件中的具体实例
- Ajax Hacking
- 兼容FireFox 的 js 日历 支持时间的获取
- ruby 异常处理:ensure
- 浅谈jquery高级方法描述与应用
- 采用CSS和JS,刚好我最近有个站点要用到下拉菜单!
- C++算法之在无序数组中选择第k小个数的实现方法
- javascript实现youku的视频代码自适应宽度
- ecshop适应在PHP7的修改方法解决报错的实现
- Hibernate悲观锁和乐观锁实例详解
- 使用vue.js在页面内组件监听scroll事件的方法