url - 从 UITableViewCell 打开邮件和 Safari

标签 url ios5 uitableview

我有一个包含两个 UITableViewCell 的表格(每个都有一个标签)。

想法是实现经典的关于页面,其中包含指向应用程序网络的链接和指向支持电子邮件的链接。

这是它的样子:

图片在这里:http://dl.dropbox.com/u/3930527/Xcode002.jpg

在来这里寻求帮助之前,我一直像往常一样环顾四周,但同样,像往常一样,有那么多奇怪和复杂的解决方案来实现一些东西,我的直觉告诉我一定要容易得多。

我不确定要走的路是否是使标签可链接。由于我在单元格上启用了用户交互,我认为使用该事件为第 1 行触发 [b]Safari[/b] 和为第 2 行触发 [b]Mail[/b] 是很自然的。

我说的对吗?有推荐的方法吗?

最佳答案

要在 Safari 中打开 URL,您可以使用 UIApplication#openURL method .您也可以使用相同的方法打开邮件,使用 mailto: 链接。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
  if(indexPath.row == 0){
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://myawesomeapp.com/support"];
  } else if(indexPath.row == 1){
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"support@myawesomeapp.com"];
  }
}

对于您的支持电子邮件问题,可以说更好的解决方案是在您的应用中以模态方式显示“撰写新电子邮件”屏幕,这很容易做到。

首先,您需要将 MessageUI 框架添加到您的应用中,并让您的 TableView Controller 响应 MFMailComposeViewControllerDelegate

然后,不是调用上面的 UIApplication,而是按照这些行做一些事情:

if ([MFMailComposeViewController canSendMail]) {
  MFMailComposeViewController *mailViewController = [[MFMailComposeViewController alloc] init];
  mailViewController.mailComposeDelegate = self;
  [mailViewController setSubject:@"[My Awesome App] Support request"];
  [mailViewController setToRecipients:[NSArray arrayWithObject:@"support@myawesomeapp.com]];
  [self presentModalViewController:mailViewController animated:YES];
}

这将显示“撰写新电子邮件”模式,并将用户留在您的应用程序中,而不是切换到 Mail 本身。您还需要处理以下委托(delegate)方法,以便在用户完成后隐藏模式:

- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error{
  [self dismissModalViewControllerAnimated:YES];
}

关于url - 从 UITableViewCell 打开邮件和 Safari,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9024994/

相关文章:

iphone - UITableviewCell 中的一个按钮

javascript - 根据菜单项的URL路径结构创建嵌套的UL菜单

php - 未加载使用 .htaccess CSS 文件的 seo 友好 url

HTML/CSS 图像导航菜单

ios5 - 截断 ios 5.x 和 6.x 的尾随零

ios - 来自 CKAsset 的图像在 Swift 中加载乱序

javascript - 没有 http ://的 jQuery 验证 URL

core-data - 通过新的 NPrivateQueueConcurrencyType 进行核心数据后台获取

objective-c - iOS 5 : Make NSString Category include NSCFConstantString?

ios - 改变tableView的颜色?.tableFooterView