我有一個UITableViewController呈現聯繫人列表,當用戶選擇一行時,它會顯示一個UIActionSheet來詢問用戶一個動作(呼叫,發送短信...)。ios:短消息作曲家沒有顯示
用戶選擇一個動作,並且第一個UIActionSheet將顯示另一個包含電話號碼的UIActionSheet。
用戶選擇一個電話號碼,這應顯示SMS消息編輯器。
問題是當用戶選擇一個電話號碼時,消息編寫器視圖不顯示(只是一個黑屏),並且我收到MFMessageComposeViewController的didFinishWithResult中的MessageComposeResultCancelled。
產生此警告的警告「警告:在演示或解散過程中嘗試從視圖控制器中消除!」
如何正確調用並顯示SMS消息編輯器?
(這完美的作品,如果我把它直接當用戶在didSelectRowAtIndexPath方法列表中選擇一個行)
下面是一些代碼:
1呼籲在didSelectRowAtIndexPath方法方法首先UIActionSheet:
UIActionSheet *popupQuery;
...
[popupQuery showInView:self.view];
2-呼叫到第二UIActionSheet在clickedButtonAtIndex方法:
UIActionSheet *popupQuery2;
...
[popupQuery showInView:self.view];
3-從同樣的方法,調用消息作曲:
[self sendSMS:@"" recipientList:[phoneNumbers objectAtIndex:buttonIndex]];
,顯示消息作曲家方法:
(void)sendSMS:(NSString *)bodyOfMessage recipientList:(NSArray *)recipients
{
MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init];
if([MFMessageComposeViewController canSendText])
{
controller.body = bodyOfMessage;
controller.recipients = recipients;
controller.messageComposeDelegate = self;
[self presentModalViewController:controller animated:YES];
}
}
你能後的一些代碼你如何表示/解僱你的視圖控制器?正如你從錯誤信息中看到的那樣,它們被呈現/解散的方式存在問題。 – Petar 2013-03-13 11:26:43
我已經添加了一些代碼 – dzk 2013-03-13 12:46:52
這是發生在一個實際的iDevice上,還是它剛剛在模擬器上測試過? 'canSendText' 返回一個布爾值,指示當前設備是否能夠發送文本消息。 但是,'canSendText'可能會在模擬器上返回true,因爲您可能在Mac上安裝了消息應用程序(參見附加問題http://mby.me/Gw_) – 2013-03-13 12:53:58