DismissViewController UIButton 导致应用程序在 iPod touch 上崩溃

Posted

技术标签:

【中文标题】DismissViewController UIButton 导致应用程序在 iPod touch 上崩溃【英文标题】:DismissViewController UIButton causes app to crash on iPod touch 【发布时间】:2012-06-12 21:27:51 【问题描述】:

DismissViewController UIButton 导致我的应用程序在 iPod touch 上进行测试时崩溃。否则,它在 iPhone 上运行良好。 iPod 版本是 4.2.1。

我收到的信息是:

dismissViewControllerAnimated:completion:]: 无法识别的选择器发送到实例 0x153720'

-(void)dismissViewDidFinish:(UIViewController *)viewController 


[self dismissViewControllerAnimated:YES completion:nil];

    

这是 modalviewcontroller h 文件:

@class Info;

@protocol InfoDelegate 

-(void)dismissViewDidFinish:(UIViewController *)viewController;

@end

【问题讨论】:

【参考方案1】:

您收到黄色警告

实例方法 -dismissViewController 未找到返回类型默认值 给身份证——

因为旧的不推荐使用的方法,dismissModalViewController 不需要 'completion:' 参数

ios6 中的新方法可以。所以你应该改写:

[self dismissViewControllerAnimated:YES completion:nil];

它会找到它

【讨论】:

【参考方案2】:

方法“dismissViewController”定义在哪里?这不是一个框架方法。如果您使用了示例中的代码,请确保您定义了您想要的方法。它不是 UIViewController 上的方法。

如果您试图从模态视图控制器中关闭模态视图控制器,方法是:

[self dismissModalViewControllerAnimated:YES];

【讨论】:

它以黄色警告我 Instance method -dismissViewController not found 返回类型默认为 id dismissViewDidFinish方法定义在什么类? 什么是“自我”? dismissViewControllerAnimated 是在哪里定义的? 它在主视图控制器中定义,即呈现模态视图控制器。抱歉,它是在信息控制器中定义的 请发布方法“dismissViewControllerAnimated”的代码(及其所在的类名)或者,如果您尝试关闭模式视图控制器,请参阅我的更新答案。

以上是关于DismissViewController UIButton 导致应用程序在 iPod touch 上崩溃的主要内容,如果未能解决你的问题,请参考以下文章

未调用dismissViewController 完成处理程序

将dismissViewController 与UIAlertController 一起使用

dismissViewController 或 popViewController 都不起作用

为 DismissViewController 添加通知而不进行子类化

ios调用dismissViewController的一个小陷阱

DismissViewController UIButton 导致应用程序在 iPod touch 上崩溃