2012-09-17 64 views
0

在我的iPhone應用程序中,我剛剛實現了應用程序內SMS功能。短信功能工作正常。但是打開MFMessageComposeViewController後,如果用戶想取消發送短信,他們沒有選擇。剩下的唯一選擇是發送短信,然後只返回上一個視圖。導航欄上應該有一個取消按鈕,就像它在電子郵件編輯器中一樣。以下是我寫的具有應用內短信功能的代碼行:MFMessageComposeViewController上的取消按鈕不顯示

-(void) smsComposer{ 
    MFMessageComposeViewController *_smsCompose = [[MFMessageComposeViewController alloc] init]; 
    if ([MFMessageComposeViewController canSendText]) { 
     _smsCompose.body = @"SMS BODY"; 
     _smsCompose.messageComposeDelegate = self; 
     [self presentModalViewController:_smsCompose animated:YES]; 
    } 
} 

有什麼我失蹤了嗎?

由於提前, PC

回答

6

試試這個....

在.h文件中

#import <MessageUI/MFMessageComposeViewController.h> 

@interface TestViewController : UIViewController <MFMessageComposeViewControllerDelegate> 

然後按鈕單擊方法

-(void)buttonPressed:(UIButton *)button 
{ 
[self sendSMS:@"Body of SMS..." recipientList:[NSArray arrayWithObjects:@"+1-111-222-3333", @"111-333-4444", nil]]; 
} 

用於創建SMS內容的MFMessageComposeViewController以及用於處理與SMS對話的用戶交互的另一種方法。

-(void)sendSMS:(NSString *)bodyOfMessage recipientList:(NSArray *)recipients 
    { 
     MFMessageComposeViewController *controller = [[[MFMessageComposeViewController alloc] init] autorelease]; 
    if([MFMessageComposeViewController canSendText]) 
    { 
     controller.body = bodyOfMessage;  
     controller.recipients = recipients; 
     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") 
    } 

記住:不能從模擬器內發送短信。在設備上測試。