[英]iOS: Tap cancel in Messages app to go back to app that invoked it
我们的团队经理提出了以下想法:在我们的应用程序中,当用户点击“ Send Msg
按钮时,我们的应用程序将打开“消息”应用程序。 我们的经理想要点击“ Cancel
以返回到我们的应用程序(请参见下面的屏幕截图),而不是点击左上方的状态栏中的Go back to ...
快捷方式。 那可能吗?
更新 messageComposeViewController委托方法是这样的,当我关闭消息控制器时,我会有些发抖?
#pragma mark - sms delegate
- (void)messageComposeViewController:(MFMessageComposeViewController *)controller
didFinishWithResult:(MessageComposeResult)result {
switch (result)
{
case MessageComposeResultCancelled:
break;
case MessageComposeResultSent:
break;
case MessageComposeResultFailed:
[LMLSendResultAlert showSuccessOrFail:0 withSuccesString:@"" andFailStr:@"短信发送失败" needPopOrdismiss:0 complete:nil];
break;
default:
break;
}
[controller dismissViewControllerAnimated:YES completion:NULL];
}
这是我的viewWillAppear方法:
-(void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[self.navigationController.navigationBar setHidden:YES];
}
如果要从外部打开消息编辑器,即只打开默认的消息应用程序(我想这是正在发生的事情,否则左上角将没有“返回”按钮),不幸的是我不知道单击“ Cancel
按钮时可以通过任何方式返回到您的应用。
但是,如果您使用的是MFMessageComposeViewController
,这可能是一个好主意,因为您的用户不必离开您的应用程序,那么当用户选择cancel
时,绝对有可能采取相应的行动。
您可以在此处查看Apple的文档,该文档利用了mailComposeController:didFinishWithResult:error:
- (void)messageComposeViewController:(MFMessageComposeViewController *)controller
didFinishWithResult:(MessageComposeResult)result {
// Check the result or perform other tasks.
// Dismiss the mail compose view controller.
[self dismissViewControllerAnimated:YES completion:nil];
}
按照Stephenye所说的,如果您使用MFMessageComposeViewController,则取消按钮将使您可以返回到您的应用程序(无论如何您仍然会在应用程序中,因为您提供了消息控制器以及其他任何视图控制器)。
这是一个例子:
-(void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result
{
switch (result)
{
[controller dismissViewControllerAnimated:YES completion:^{
case MessageComposeResultCancelled:
break;
case MessageComposeResultFailed:
[LMLSendResultAlert showSuccessOrFail:0 withSuccesString:@"" andFailStr:@"短信发送失败" needPopOrdismiss:0 complete:nil];
break;
case MessageComposeResultSent:
break;
default:
break;
}
}];
}
-(void)presentMessagerOnViewController:(UIViewController*)controller
{
if(![MFMessageComposeViewController canSendText])
{
//show error message
return;
}
NSArray *recipients = @[@"0424456654"];
NSString *defaulMessage = @"You should absolutely upvote my answer";
MFMessageComposeViewController *composer = [[MFMessageComposeViewController alloc] init];
composer.messageComposeDelegate = self;
[composer setRecipients: recipients];
[composer setBody: defaulMessage];
[self presentViewController: composer animated:YES completion: NULL];
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.