iOS开发报错之attempt to dismiss modal view controller whose view does not currently appear

刚才遇到一个问题,现在在这就当纪录一下,大家有遇到的能快速找到原因,分享一下啊。

在APP中,需要用户登录后才能使用,所以我通过更改APP的[UIApplicationsharedApplication].keyWindow.rootViewController来控制界面的跳转。

在使用过程中出现如下问题:

1.登录成功后点击注销按钮,弹出注销提示框UIAlertView;

2.注销成功后重新登录;

3.再次点击注销不再弹出UIAlertView。

提示如下警告:

点击注销按钮执行更改rootvie操作:

attempt to dismiss modal view controller whose view does not currently appear

再次点击注销的时候提示:

Attempt to present <_UIModalItemsPresentingViewController: 0x7f9d1b5b2fd0> on <_UIModalItemAppViewController: 0x7f9d1d335520> whose view isnot in the window hierarchy!

我的代码是:

    LoginViewController *loginVC = [[LoginViewControlleralloc] init];

CNavigationController *nav = [[CNavigationControlleralloc] initWithRootViewController:loginVC];

[UIApplicationsharedApplication].keyWindow.rootViewController = nav;

造成这个的原因主要是

  因为我执行上述代码是在:-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex的这个方法执行的;

  所以在我执行切换根视图控制器的时候UIAlertView是还没有消失的,所以会出现上述错误,UIAlertView的消失是需要一定的时间的,

解决方案:

要解决这个问题,就是在UIAlertView的另一个代理方法-(void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex中执行切换根 控制器的操作,即上述我的代码,也就是说在UIAlertView彻底消失后再执行切换根控制器,解决!

时间: 2024-10-21 00:55:06

iOS开发报错之attempt to dismiss modal view controller whose view does not currently appear的相关文章

iOS 开发报错 clang: error: unable to execute command: Segmentation fault: 11

ios开发报错 ld: can't link with a main executable file '/Users/apple/Library/Developer/Xcode/DerivedData/LePaiDemo-ftsuwgzvjdjwzghgkuefbzvdkvey/Build/Products/Debug-iphoneos/LePaiDemo.app/LePaiDemo' for architecture armv7 clang: error: unable to execute

iOS开发报duplicate symbols for architecture x86_64错误的问题

在我们写代码过程中可能会经常遇到这样一个错误: 如图所示: 分析错误原因 仔细读一下报错原因可以发现几个关键词:"duplicate"和"symbols". duplicate的中文意思是"重复的.复制的",而symbols的意思是"符号".也就是可能在你工程中引入了重复的东西. 解决问题办法 我总结了一下,出现duplicate出这个错误一般有三种情况: 1 重复导入相同的文件 第一种情况:在工程中重复导入了某一个类或文件,

JQuery开发报错集锦

报错一:JQuery $.each遍历JSON字符串报Uncaught TypeError:Cannot use 'in' operator to search for "70"......  原因分析:一般由于服务器端传来的变量类型不是json格式,而是其他的,常见的如string,这是用$.each循环就会报这个错误.               建议在jquery端确认该变量的类型,如alert(typeof(data));看看是不是这个原因导致的?如果打印string表明不是j

AX dynamics 2012 ssrs 开发报错:Native compiler return value: ‘[BC30179]

具体报错内容如下: System.Web.Services.Protocols.SoapException: An unexpected error occurred while compiling expressions. Native compiler return value: ‘[BC30179] class 'Textbox34_TextBoxExprHost' and class 'textbox34_TextBoxExprHost' conflict in class 'Repor

react native 开发报错

1:oc对象名是RCTPoctalk 2:js中导入原生方法 3:报错:对象没有定义 出现这样的问题可能是react native 不允许使用"RCT"开头的前缀 4:解决办法:"RCT_EXPORT_MODULE()" 导出对象方法的宏默认是OC对象名 ,  在宏中添加另起一个名字,js导出方法也修改下

微信小程序云开发报错解决: Setting data field &quot;openid&quot; to undefined is invalid.

最近在学习微信小程序云开发,刚一开始就遇到了问题. 点击获取openid的时候控制台开始报错: [云函数] [login] user openid:  undefined VM97:1 Setting data field "openid" to undefined is invalid. 然后我开始去百度搜索解决这个问题,各种方法都试过了,还是没有解决.换了一个思路,开始追踪代码: 鼠标悬停到右边的 index.js:55,发现是/pages/index/index.js文件的第55

java ee开发报错

七月 26, 2015 9:57:52 下午 org.apache.coyote.AbstractProtocol destroy信息: Destroying ProtocolHandler ["ajp-nio-8009"]七月 26, 2015 9:57:52 下午 org.apache.coyote.AbstractProtocol destroy严重: Failed to destroy end point associated with ProtocolHandler [&qu

arcGIS二次开发报错

Error 1 未能加载文件或程序集“file:///C:/Program Files (x86)/ArcGIS/DeveloperKit10.0/DotNet/ToolBoxes/ESRI.ArcGIS.AnalysisTools.dll”或它的某一个依赖项.试图加载格式不正确的程序. 行 141,位置 5. C:\Users\Administrator\Documents\Visual Studio 2010\Project 这是因为 Resgen.exe (Resource File Ge

iOS 跳转出现attempt to dismiss modal view controller whose view does not currently ……的解决方案

今天在设置修改密码成功进行跳转到登录页面重新登录的时候,我写的原代码是: [self dismissViewControllerAnimated:YES completion:nil]; [UIApplication sharedApplication].keyWindow.rootViewController = [[loginViewController alloc]init]; 于是出现了在本页面跳到登录页面,然后又切回到本页面的状况.如图: 首先是修改密码的页面: 点击确认以后,跳转到登