如何从 NSobject 类 iOS 在任何视图控制器类上弹出 MFMessageComposeViewController 对象

Posted

技术标签:

【中文标题】如何从 NSobject 类 iOS 在任何视图控制器类上弹出 MFMessageComposeViewController 对象【英文标题】:how to popup MFMessageComposeViewController object on any view controller class from NSobject class iOS 【发布时间】:2013-04-22 16:00:09 【问题描述】:

    如何通过NSObject 类方法在后台执行在任何视图控制器(topviewcontroller)上打开MFmessageComposeviewcontroller

    这是我的代码,弹出按摩控制器没有错误

    MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init];
    
    if([MFMessageComposeViewController canSendText])
    
        controller.body = @"Check out FundooSpace for mobile. Download it now from www.lsaknlansc.cas.kasjla/FundooSpace/d";
        controller.recipients=(NSArray *)passa;
        passa=nil;
        AppDelegate *appDelegateObject1 = (AppDelegate *)[[UIApplication sharedApplication] delegate];
    controller.messageComposeDelegate=self;
        [appDelegateObject1.navigationCntr.topViewController performSelectorOnMainThread:@selector(presentModalViewController:animated:) withObject:controller waitUntilDone:NO];
    
    

但点击发送或取消按钮后 1 会崩溃。 2.delegate方法没有被调用(如何设置delegate到消息控制器)

【问题讨论】:

【参考方案1】:

我认为在后台运行的 NSObject 已被释放。它也是 Compose View Controller 的委托,所以致命错误:EXC BAD ACCESS。属性 messageComposeDelegate 不保留对象。您正在使用 ARC,不是吗?

尝试保留将其分配给任何强 var 的对象,直到撰写视图控制器结束。

【讨论】:

当我创建 ipa 文件并在设备上安装时出现一个问题,然后它会崩溃(wait_fences:未能收到回复:10004003)。但是使用设备在 Xcode 中运行然后它工作正常。请告诉我为什么会发生这种情况? 这是一个非常不同的问题。请打开一个新问题。

以上是关于如何从 NSobject 类 iOS 在任何视图控制器类上弹出 MFMessageComposeViewController 对象的主要内容,如果未能解决你的问题,请参考以下文章

如何调用从 NSObject 类添加视图

从 NSObject 类推送 iOS UIViewController

如何从 iOS 中的 NSObject 类导航到 ViewController?

将视图推出 NSObject 类

iOS9如何调用NSObject类中的UIAlertviewController?

来自 NSObject 类的 MFMailComposeViewController 显示问题 - iOS