由于最近项目需要制作一个可定制的底部弹窗效果,因此研究了一下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的时候并没有进行界面的绘制,而在这个时候切换窗口所以导致了该异常的错误,这只是片面的猜测,希望有知道的朋友指正下。
自定义action sheet GIT链接: