ユーザーが要求すると、私のアプリは SMS を送信し、作成ビューがポップアップします。このコードを使用してこれを行い、ハードコードされた番号とメッセージをデフォルトとして設定できます。
[self sendSMS:@"messageTextGoesHere" recipientList:[NSArray arrayWithObjects:@"phoneNumberGoesHere", nil]];
と
- (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 presentViewController:controller animated:YES completion:nil];
}
}
- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result{
[controller dismissViewControllerAnimated:YES completion:nil];
}
しかし、私がやりたいことは、受信者とメッセージを NSUserDefaults 文字列に設定することです。これは私が試したものです:
NSString *messageNumbers = [[NSUserDefaults standardUserDefaults] objectForKey:@"phoneNumber"];
NSString *textMessage = [[NSUserDefaults standardUserDefaults] objectForKey:@"messageText"];
[self sendSMS:textMessage recipientList:[NSArray arrayWithObjects:messageNumbers, nil]];
通常のポップアップ メッセージ コンポーザーの代わりに、しばらくハングしてから画面が真っ暗になるため、アプリを終了する必要があります。コンソールには次のように表示されます。
2013-10-27 17:29:45.428 *APP*[4006:60b] <CKSMSComposeRemoteViewController: 0x1844fb90> timed out waiting for fence barrier from com.apple.mobilesms.compose
2013-10-27 17:29:45.936 *APP*[4006:60b] Warning: Attempt to dismiss from view controller <ViewController: 0x14e02700> while a presentation or dismiss is in progress!
誰かが私が間違ったことや、別のコードを使用する必要があるかどうかを教えてもらえますか?
ありがとう!