整理笔记2 - ios 视图的生命周期和程序的生命周期 发短信+打电话

1 篇文章 0 订阅

1.视图的生命周期

- (void)loadView{

    //这个时候是没有视图的 因为还在寻找..

    //控制器 只需要一个属于自己的视图 使用初始化一次  OK (相当于底层)

    NSLog(@"视图控制器 -> 读取视图");

    [super loadView];//相当于装了一个底片

}

- (void)viewDidLoad {

    NSLog(@"视图控制器读取完毕");

    [super viewDidLoad];

    //初始化用户界面

    [self initUserInterface];

}

//完成生命周期的过程

- (void)viewWillAppear:(BOOL)animated{

    [super viewWillAppear:animated];

    NSLog(@"视图将要出现");

    //进行网络请求,数据更新

}

- (void)viewDidAppear:(BOOL)animated{

    [super viewDidAppear:animated];

    NSLog(@"视图已经出现");

}

- (void)viewWillDisappear:(BOOL)animated{

    [super viewDidDisappear:animated];

    NSLog(@"视图将要消失");

}

- (void)viewDidDisappear:(BOOL)animated{

    [super viewDidDisappear:animated];

    NSLog(@"视图已经消失");

}

2.程序的生命周期

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

NSLog(@"应用程序启动);


- (void)applicationWillEnterForeground:(UIApplication *)application 

NSLog(@“应用程序将要进入前台);

当程序从后台将要重新回到前台时候调用


- (void)applicationDidBecomeActive:(UIApplication *)application 

NSLog(@"应用程序将要处于活动状态);

NSLog(@"②告诉代理启动基本完成程序准备开始运行"); 



- (void)applicationWillResignActive:(UIApplication *)application 

NSLog(@"应用程序将要处于非活动状态"); //command + shift + h

 NSLog(@"③当应用程序将要入非活动状态执行,在此期间,应用程序不接收消息或事件,比如来电话");



- (void)applicationDidEnterBackground:(UIApplication *)application 

NSLog(@"应用程序进入后台");//command + h

当程序被推送到后台的时候调用。所以要设置后台继续运行,则在这个函数里面设置即可



- (void)applicationWillTerminate:(UIApplication *)application 

NSLog(@"应用程序将要退出);

当程序将要退出是被调用,通常是用来保存数据和一些退出前的清理工作。这个需要要设置UIApplicationExitsOnSuspend的键值


3.拨打电话的方式:

1,这种方法,拨打完电话回不到原来的应用,会停留在通讯录里,而且是直接拨打,不弹出提示
 NSMutableString * str=[[NSMutableString allocinitWithFormat:@"tel:%@",@"186xxxx6979"];
    
//            NSLog(@"str======%@",str);
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];
    

2,这种方法,打完电话后还会回到原来的程序,也会弹出提示,推荐这种
    NSMutableString * str=[[NSMutableString allocinitWithFormat:@"tel:%@",@"186xxxx6979"];
    
UIWebView * callWebview = [[UIWebView allocinit];
    [callWebview 
loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:str]]];
    [
self.view addSubview:callWebview];
    [callWebview 
release];


3,这种方法也会回去到原来的程序里(注意这里的telprompt),也会弹出提示
    NSMutableString * str=[[NSMutableString allocinitWithFormat:@"telprompt://%@",@"186xxxx6979"];
    
//            NSLog(@"str======%@",str);
    [[UIApplication sharedApplicationopenURL:[NSURL URLWithString:str]]

2、发短信

(1)iOS中可以使用两种方式发送短信,最简单是使用openURL:

[[UIApplication sharedApplication]openURL:[NSURL URLWithString:@ "sms://10010" ]];//发短信 

(2)MFMessageComposeViewController和MFMessageComposeViewControllerDelegate,提供了发送短信的接口,可以像发送邮件那样不用跳出程序来发送短信.

Frameworks中要引入MessageUI.framework 

#import <MessageUI/MessageUI.h>
添加协议:
<MFMessageComposeViewControllerDelegate>

//内容,收件人列表

- (void)sendSMS:(NSString *)bodyOfMessage recipientList:(NSArray *)recipients

{

MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init];

if([MFMessageComposeViewController canSendText])

{

controller.body = @"短信内容...";

controller.recipients = @[@"10086",@"10010"];

controller.messageComposeDelegate = self;

[self presentModalViewController:controller animated:YES];

}

}

// 处理发送完的响应结果

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

{

[self dismissModalViewControllerAnimated:YES];

if (result == MessageComposeResultCancelled)

NSLog(@"Message cancelled");

else if (result == MessageComposeResultSent)

NSLog(@"Message sent");

else

NSLog(@"Message failed");

}






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值