Iphone dismissModalViewControllerAnimated:在模拟器中崩溃,但在手机上没有
我正在做以下工作:Iphone dismissModalViewControllerAnimated:在模拟器中崩溃,但在手机上没有,iphone,Iphone,我正在做以下工作: [self.parentViewController dismissModalViewControllerAnimated:YES] 此代码在使用模拟器时失败,但在手机上不会出现任何问题。模拟器控制台显示无错误。我使用NSLog语句确定这行代码是罪魁祸首。但是,当在手机上运行时,控制台(窗口>管理器)显示已执行上述代码,并且应用程序可以顺利运行 在调试器中运行代码时,以下语句出现在Xcode调试窗口的底部: GDB:数据格式化程序暂时不可用,将在“继续”后重试。(此时调
[self.parentViewController dismissModalViewControllerAnimated:YES]
此代码在使用模拟器时失败,但在手机上不会出现任何问题。模拟器控制台显示无错误。我使用NSLog语句确定这行代码是罪魁祸首。但是,当在手机上运行时,控制台(窗口>管理器)显示已执行上述代码,并且应用程序可以顺利运行
在调试器中运行代码时,以下语句出现在Xcode调试窗口的底部:
GDB:数据格式化程序暂时不可用,将在“继续”后重试。(此时调用dlopen不安全。)
然后一个窗口显示:加载43672个堆栈帧。(听起来很糟糕)
在调试窗口中,以下行多次出现:
[UIView(层次结构)\u makeSubtreePerformSelector:withObject:withObject:copySublayers:]
在不深入我的代码的情况下,有人知道或有过这种情况的经验吗
谢谢我认为您从哪里调用此代码是关键,但您没有说此代码在哪里
我怀疑解聘父VC会导致此代码再次被执行,从而再次尝试解聘父VC。。。基本上是一个无限循环。为什么不直接调用
[self dismissModalViewControllerAnimated:YES]
。关闭模态视图控制器就足够了
我知道,这不是你问题的答案,但可能有助于避免你的问题。谢谢你的回答 我试过你的建议,但没有成功。谢谢你确保我先做了显而易见的事情 progrmr-我想你可能是正确的-何时何地取消模态视图是关键,我将研究我是如何做到这一点的。我可能需要重新设计如何处理我的观点 这是令人沮丧的,因为问题并不是发生在iphone本身,而是发生在模拟器中。而且,我刚刚确认,使用相同的MacBook Pro,当我在家工作时,错误不会在模拟器中出现——问题只发生在我的办公室。奇怪,嗯 我会继续挖掘并报告我的发现
再次感谢。更新-我没有解决问题,而是通过重新构建东西来避免它。之前,在ApplicationIDFinishLaunching:中,我提供了一个登录视图控制器作为模式视图。然后我需要显示一个EULA视图控制器,这样用户就可以同意一些合法的东西。我认为我的问题是,我将EULA视图作为登录视图(也是模态)的模态来呈现。我认为,情态动词出现/消失的顺序是问题所在(正如progrmr所怀疑的)
我是如何避免这个问题的?我花时间了解了委托模式。现在,每个模式视图(登录和EULA)都显示在app delegate类中,当对模式视图执行某些操作时,我使用委托回调。如果self实际上没有modalViewController,则不应使用self dismissModalViewControllerAnimated。只需创建一个协议,将从模态视图控制器中删除的对象委托回父对象。当您按下模式视图控制器时,分配代理,然后当您想要解除代理时,调用[self.delegate dismissMe],这反过来调用代理(父级)上的[self dismissModalViewControllerAnimated:…] 而不是
[[Picker parentViewControl] dismissModalViewControllerAnimated:YES];
[self presentModalViewController:picker animated:YES];
和
[self presentViewController:picker animated:YES completion:nil];
而不是
[[Picker parentViewControl] dismissModalViewControllerAnimated:YES];
[self presentModalViewController:picker animated:YES];
@乔恩:如果你的问题得到了一个解决问题的答案,如果你点击复选标记接受它,那就太好了。