2011-11-02 28 views
0

我有这样的代码,运行15秒的延迟定时器它发送一个SMS之前:如何启动MFMessageComposeViewController

timer = [NSTimer scheduledTimerWithTimeInterval:15.0 target:self selector:@selector(sendMessage) userInfo:nil repeats:NO]; 

这一代码进入到被叫等待屏幕方法,其显示视图控制器与活动指示器和标签告诉用户15秒计时器已到位。 15秒计时器之后,此视图将被解除(请参阅下面的代码),然后我想要启动MFMessageComposeViewController视图,并且用户的身体和收件人已经就位。由于iOS无法自动发送短信,用户必须点击发送才能发送短信。

这是我的sendMessage方法:

- (void)sendMessage { 
[self dismissModalViewControllerAnimated:YES]; 

MFMessageComposeViewController *controller = [[[MFMessageComposeViewController alloc] init] autorelease]; 
if([MFMessageComposeViewController canSendText]){ 
    controller.body = messageField.text; 
    controller.recipients = [NSArray arrayWithObjects:contactNumber.text,nil]; 
    controller.messageComposeDelegate = self; 

    [self presentModalViewController:controller animated:YES]; 
} 

}

messageFieldUITextField其中用户键入短信而contactNumber是从地址簿联系人的号码。

我的问题是为什么我的MFMessageComposeViewController不启动?有没有更好的方法来做到这一点?谢谢!

+1

你有没有尝试添加/删除从您的waitView /到self.view而不是模式呈现它,它的工作?我认为问题是,当你打电话给自己解雇,你会释放这个视图。其他方面,你必须调用关于waitView的解雇,而不是在视图中调用它。 – Mat

+0

你的回复有点含糊,但我理解它的片段。将尝试。谢谢你! – jaytrixz

+0

试过了,但没有发生任何事情。一样。 – jaytrixz

回答

0

请问,如果你改变你的第一线,

[self dismissModalViewControllerAnimated:NO]; 
+0

如果我这样做,结果也是一样。它只是不动画。 – jaytrixz