iOS 编程之UIWindow切换

由于最近项目需要制作一个可定制的底部弹窗效果,因此研究了一下UIActionSheet,打算重写一个自定义的弹窗,在写demo的时候出于偷懒的原因,直接在新建项目的

- (void)viewDidLoad {}

中写入了窗口切换测试代码,结果在调试的时候就出现了如下错误信息:

Terminating app due to uncaught exception ‘NSInternalInconsistencyException‘, reason: ‘Application windows are expected to have a root view controller at the end of application launch‘

?

在网上搜索了一下大多数朋友都说是因为Xcode的版本导致的,需要在

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {}

?

方法中手动添加一个rootViewController。按照上述方法做了之后发下依旧报相同BUG,随后将窗口切换代码写入按钮点击事件,通过点击事件触发切换。通过该方法解决了这个问题。

初步原因分析:

可能是在viewDidLoad的时候并没有进行界面的绘制,而在这个时候切换窗口所以导致了该异常的错误,这只是片面的猜测,希望有知道的朋友指正下。

时间: 2024-10-11 21:38:23

iOS 编程之UIWindow切换的相关文章

iOS编程之Address Book (1)

iOS的地址簿技术提供一个在集中式数据库中存储用户联系人信息和其他私人信息.在应用程序间分享这些信息的方式. 地址簿技术包括四个方面: Address Book framework提供接口来访问用户信息 Address Book UI framework 用来显示用户信息 Address Book databases 存储信息 Contacts application提供方式让用户来访问他们的联系信息 当你在你的应用程序中加入地址簿技术,用户将能够在你的应用程序中使用他们在其他应用程序中使用的联

对IOS编程之User Interface的理解

IOS用户界面是APP呈现给用户最直观.最常用的方式,因此学会用户界面的编程是学习IOS编程很重要而且不可缺少的一部分:用户界面的实现方式可以分为纯代码.纯界面和代码+界面:纯代码实现的界面,在现在是比较不推崇的,因为用纯代码编写的界面难于维护,会使开发人员花费很多的时间去调整UI界面,但是纯代码可以实现很多特殊的效果:纯界面,往往其所能实现的功能是较于局限的,如用于说明的文本或图片等等:代码+界面,是现在比较推崇的界面实现方式,一是能够以一种直观的方式去编写用户界面,使界面更加易于维护,并且也

6. iOS 编程之 Xcode6 上配置国际化

开篇先说明,写好的程序在模拟器上运行是会出现变态情况的,建议使用真机做测试,笔者写此文章之前给模拟器折腾得死去活来,特告知众小伙伴,勿踩坑. 1.先创建一个项目 取名叫 LocalizableTest,然后按照图片的方式添加需要国际化的语言. Finish 后,就算是添加成功了,而后就可以在 Main.storyboard 和 LaunchScreen.xib 这两个的左边看到生成的小三角形,可展开,包含你刚添加的语言文件和一个base的文件. 在接着点中 Main.storyboard,按照图

11. iOS 编程之 Xcode 报错:Apple LLVM 6.0 Error 的解决方法

一般来说,这个错误是由于你更新了 Xcode 的版本,或者是你删了之前的又重装了一遍 Xcode的话,就时不时会出现此问题. 解决办法很简单,只需要去目录下删掉点东西就行了.看如下操作: 1)点开 Finder 中的"前往". 2)上图看不出什么,还要你再长按住你键盘左下位置的 option 键,就会出现一个"资源库"选项. 因为资源库是系统的隐藏文件,存放了相当多系统相关的文件,怕万一给小菜鸟不小心删了某些文件,Apple 只好为了万无一失把它隐藏了起来. 只有按

iOS多线程编程之NSThread的使用

目录(?)[-] 简介 iOS有三种多线程编程的技术分别是 三种方式的有缺点介绍 NSThread的使用 NSThread 有两种直接创建方式 参数的意义 PS不显式创建线程的方法 下载图片的例子 新建singeView app 线程间通讯 线程同步 线程的顺序执行 其他同步 1.简介: 1.1 iOS有三种多线程编程的技术,分别是: 1..NSThread 2.Cocoa NSOperation (iOS多线程编程之NSOperation和NSOperationQueue的使用) 3.GCD 

IOS 多线程编程之 NSThread 的使用

1.简介: IOS 多线程编程之 NSThread 的使用 1.1 IOS 有三种多线程编程的技术,分别是: 1..NSThread 2.Cocoa NSOperation (IOS 多线程编程之 NSOperation 和 NSOperationQueue 的使用) 3.GCD 全称:Grand Central Dispatch( IOS 多线程编程之 Grand Central Dispatch(GCD)介绍和使用) 这三种编程方式从上到下,抽象度层次是从低到高的,抽象度越高的使用越简单,也

iOS多线程编程之Grand Central Dispatch(GCD)介绍和使用

介绍: Grand Central Dispatch 简称(GCD)是苹果公司开发的技术.以优化的应用程序支持多核心处理器和其它的对称多处理系统的系统.这建立在任务并行运行的线程池模式的基础上的.它首次公布在Mac OS X 10.6 ,iOS 4及以上也可用. 设计: GCD的工作原理是:让程序平行排队的特定任务.依据可用的处理资源,安排他们在不论什么可用的处理器核心上运行任务. 一个任务能够是一个函数(function)或者是一个block. GCD的底层依旧是用线程实现,只是这样能够让程序

iOS多线程编程之NSOperation和NSOperationQueue的使用(转自容芳志专栏)

转自由http://blog.csdn.net/totogo2010/ 使用 NSOperation的方式有两种, 一种是用定义好的两个子类: NSInvocationOperation 和 NSBlockOperation. 另一种是继承NSOperation 如果你也熟悉Java,NSOperation就和java.lang.Runnable接口很相似.和Java的Runnable一样,NSOperation也是设计用来扩展的,只需继承重写NSOperation的一个方法main.相当与ja

【转载】iOS多线程编程之Grand Central Dispatch(GCD)介绍和使用

[转载]http://blog.csdn.net/totogo2010/article/details/8016129 iOS多线程编程之Grand Central Dispatch(GCD)介绍和使用 分类: iOS开发进阶2012-09-25 16:22 35382人阅读 评论(32) 收藏 举报 目录(?)[+] 介绍: Grand Central Dispatch 简称(GCD)是苹果公司开发的技术,以优化的应用程序支持多核心处理器和其他的对称多处理系统的系统.这建立在任务并行执行的线程