发送短信iPhone
我试图从我的应用程序内发送短信。我写了这段代码,但它似乎不工作。 没有崩溃,没有错误日志,根本没有发生(当然,我试图登录canSendText
和结果是1
)。发送短信iPhone
- (void)viewDidLoad
{
[super viewDidLoad];
messageComposer = [[MFMessageComposeViewController alloc] init];
if ([MFMessageComposeViewController canSendText]) {
[messageComposer setBody:@"Messaggio generato da SMSTest"];
[messageComposer setRecipients:[NSArray arrayWithObject:@"3333333333"]];
[messageComposer setDelegate:self];
[self presentModalViewController:messageComposer animated:YES];
}
}
任何人都可以解释我做错了什么?
的问题是,作为视图加载presentModalViewController
不viewDidLoad
工作还没有,但即使可能无法在屏幕上呢。如果你把你的代码放在viewWillAppear:animated
,这应该可以工作。
编辑:根据Saphrosit的评论:viewDidAppear:
是一个更好的地方做到这一点。
非常好的一点,但即使在'viewWillAppear'视图可能还没有在屏幕上。它将代码放在'viewDidAppear'中,即使最好的解决方案是使用按钮来执行自定义方法。 – Saphrosit
的确是一个很好的观点,我在我的答案中加了一个编辑。 –
我用这个成功:
MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init];
controller.messageComposeDelegate = self;
controller.modalPresentationStyle = UIModalPresentationFullScreen;
[self presentModalViewController:controller animated:YES];
注意它的messageComposeDelegate,而不是 '代表' 为你做。
添
当我尝试在模拟器中的代码我得到一个UIAlert说短信是不可用的,因为模拟器无法发送消息。你检查过你的头文件是MFMessageComposeViewControllerDelegate的代表吗?
YourClassName : UIViewController <MFMessageComposeViewControllerDelegate>
//尝试这...这将运行..
MFMessageComposeViewController *controller = [[[MFMessageComposeViewController alloc] init] autorelease]; if([MFMessageComposeViewController canSendText]) { controller.body = @"Hello from Kartik"; controller.recipients = [NSArray arrayWithObjects:@"12356478", nil]; controller.messageComposeDelegate = self; [self presentModalViewController:controller animated:YES]; }
你测试它在模拟器上?模拟器不能发送短信。 – beryllium
您正尝试在手机上运行应用程序而不是在模拟器上执行此操作,对吗?你将无法从SIM卡发送短信。我不认为它会为此提出任何错误...虽然我无法确切地记得这一点。 – carbonbasednerd
是的我在iPhone上试过。正如我所说,'canSendText'返回1.在模拟器中它将返回0. – Saphrosit