2013-03-13 30 views
4

一旦短信窗口彈出,我無法再次關閉它。取消按鈕不起作用,發送按鈕將發送短信但不關閉窗口。如何解除應用程序內ios短信的消息窗口

我已經瀏覽了許多這裏的類似問題,他們都建議要麼實現messageComposeViewController方法,要麼將messageComposeDelegate設置爲self,而是完成這兩件事情,但仍然沒有任何結果。

有人可以告訴我我做錯了什麼嗎?

.h文件中

​​

.m文件

- (IBAction)SendTextTapped:(id)sender{ 
    MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init]; 
    if([MFMessageComposeViewController canSendText]) 
    { 
     controller.body = @"Hello!"; 
     controller.recipients = [NSArray arrayWithObjects:@"123456", nil]; 
     controller.messageComposeDelegate = self; 
     [self presentViewController:controller animated:YES completion:nil]; 
    } 
} 


- (void)messageComposeViewController:(MFMessageComposeViewController*) controller didFinishWithResult:(MessageComposeResult)result error:(NSError*)error; 
{ 
    NSLog(@"Entered messageComposeController"); 
    switch (result) { 
    case MessageComposeResultSent: NSLog(@"SENT"); [self dismissViewControllerAnimated:YES completion:nil]; break; 
    case MessageComposeResultFailed: NSLog(@"FAILED"); [self dismissViewControllerAnimated:YES completion:nil]; break; 
    case MessageComposeResultCancelled: NSLog(@"CANCELLED"); [self dismissViewControllerAnimated:YES completion:nil]; break; 
    } 
} 
+0

是行'的NSLog(@ 「上輸入messageComposeController」);'擊中呢? NSLog出現了嗎? – 2013-03-13 19:50:57

+0

不,它永遠不會出現 – mathewwl 2013-03-13 19:53:20

回答

2

你的委託方法清除錯誤參數。委託方法應該是:

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

NOT:

- (void)messageComposeViewController:(MFMessageComposeViewController*) controller didFinishWithResult:(MessageComposeResult)result error:(NSError*)error 
{ 
    // code here 
} 
+0

非常感謝!現在充分工作:) – mathewwl 2013-03-13 19:57:47

相關問題