2012-01-26 61 views
3

我有一個表與兩個UITableViewCell(和每個上的一個標籤)。從UITableViewCell打開郵件和Safari

這個想法是通過鏈接到應用程序網頁和支持電子郵件的鏈接來實現經典關於頁面。

這是它的樣子:

的形象在這裏:http://dl.dropbox.com/u/3930527/Xcode002.jpg

我一直在四處尋找像往常一樣來到這裏尋求幫助之前,但同樣,像往常一樣,這麼多的怪異和複雜解決方案來實現我的膽量告訴我的東西一定會更容易。

我不知道如果要走的路是使標籤可以鏈接。由於我在單元格上啓用了用戶交互,我認爲使用該事件很自然地爲第1行啓動Safari [/ b],第2行啓用[b] Mail [/ b]。

我I正確?有沒有推薦的方法來做到這一點?

回答

6

要在safari中打開網址,您可以使用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:@"[email protected]"]; 
    } 
} 

,可以說是更好的解決您的支持問題通過電子郵件將您的應用程序,這是很容易做到的內模態呈現「撰寫新郵件」屏幕。

首先,您需要將MessageUI框架添加到您的應用程序,並使您的表格視圖控制器響應MFMailComposeViewControllerDelegate

然後,而不是調用UIApplication的上面,做一些沿着這些線路:

這將顯示「撰寫新郵件」模式,並保持用戶的應用內的,而不是切換出來郵件本身。您還需要處理以下代理方法,以便在用戶完成後隱藏模式:

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

太棒了!我實現了作曲家版本,它的工作。謝謝。 –

+0

太棒了。正是我在找的東西。非常感謝。 –