• 界面代码ios不响应presentModalViewController界面的处理


    首先声明,我是一个菜鸟。一下文章中出现技术误导情况盖不负责

       近来折腾ios的一个邮件分享和SMS短信分享功能,本来是很简单的的功能,但是我发明打开的邮件界面和短信界面一直不响应navigationController下面的按钮,感觉很奇异的,最后发明,需要在打开的这些界面的委托实现方法中,把打开的视图关闭,说的有点别扭吧! 我发一段代码出来,大家可能会明确的!

        注意:如果想调用发送短信和邮件的功能,必需要引入一个库:MessageUI.framework  

        还需要import一些类:

    #import <MessageUI/MessageUI.h>
    #import <MessageUI/MFMailComposeViewController.h>

        

        如下代码是ios发送短信的代码:

    -(void)sendSMSComposerSheet
    {
        MFMessageComposeViewController *messageCtrl = [[MFMessageComposeViewController alloc] init];
        messageCtrl.messageComposeDelegate = self;
        messageCtrl.body = @"share ....";
        [self presentModalViewController:messageCtrl animated:YES];
    }

        这段代码实现的委托就:MFMessageComposeViewControllerDelegate

        可是我的代码中也实现了委托,代码如下:

    - (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result
    {
        
    }

        但是打开短信界面是没问题的,关键是点击短信界面的取消按钮没有相应,最后我想了一下,估计要在委托的实现方法中关闭打开的视图,结果的确如此!

        以上代码修改成:

        每日一道理
    即使青春是一枝娇艳的花,但我明确,一枝独放永远不是春天,春天该是万紫千红的世界。 即使青春是一株大地伟岸的树,但我明确,一株独秀永远不是挺拔,成行成排的林木,才是遮风挡沙的绿色长城。即使青春是一叶大海孤高的帆,但我明确,一叶孤帆很难远航,千帆竞发才是大海的壮观。
    - (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result
    {
        [controller dismissModalViewControllerAnimated:YES];
    }

        或者:

    - (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result
    {
        [controller dismissViewControllerAnimated:YES completion:^{}];
    }

        两种方式都可以的,这样就能解决ios使用presentModalViewController打开viewController,相应viewcongroller下面的相关按钮了!

        同时在附加上 ios发送邮件的代码:

    -(void)sendMailComposerSheet
    {
        MFMailComposeViewController *mailCtrl = [[MFMailComposeViewController alloc] init];
        mailCtrl.mailComposeDelegate = self;
        [mailCtrl setSubject:@"邮件标题"];
    
        [mailCtrl setMessageBody:@"邮件内容" isHTML:NO];
        [self presentModalViewController:mailCtrl animated:YES];
    }

        相关的委托:MFMailComposeViewControllerDelegate

        界面的处置

    -(void) mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error
    {
         [controller dismissModalViewControllerAnimated:YES];
    }

        

        

    文章结束给大家分享下程序员的一些笑话语录: 人在天涯钻,哪儿能不挨砖?日啖板砖三百颗,不辞长做天涯人~

    --------------------------------- 原创文章 By
    界面和代码
    ---------------------------------

  • 相关阅读:
    漂亮的表格样式;jQuery清楚表格所有行;js解析后台传过来的JSON数据;动态生成表格数据
    js下载文件;下载方式<a> 和href方式;已经中文乱码问题
    oracle数据库优化与LNNVL函数使用
    HTML页面中使用JQuery获取表格的所有单元的的数据
    oracle中 SQL语句查询后;拼接列;拼接行
    页面制作验证码
    jqGrid,样式
    html 页面弹窗
    Java float保留两位小数或多位小数
    VB操作EXCEL文件大全
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3109241.html
Copyright © 2020-2023  润新知