2010-02-22 53 views
4

我正在開發iPhone應用程序,並希望能夠點擊UITableView中的鏈接。當鏈接,並且只有鏈接被選中時,我想讓Safari應用程序打開到選定的鏈接。有關如何做到這一點的任何建議?非常感謝!UITableView中的可點擊鏈接打開了Safari

+0

你問如何做的全過程,在開始製作可點擊鏈接,或者你只是問如何讓Safari打開? – Justin 2010-02-22 20:10:35

+0

嗨, 我需要知道如何在UITableView中點擊鏈接,然後點擊鏈接,打開Safari到該鏈接感謝您的幫助 – Wheelmeister 2010-02-22 21:12:48

回答

0

一個簡單的方法是將一個微小的UIWebView嵌入到每個單元格中。 UIWebView有一個代理,它可以讓你知道什麼時候點擊了一個鏈接,你可以實現啓動Safari,或者導航到一個託管全屏UIWebView的新控制器。

這種方法可能太耗費資源,我自己也沒有嘗試過,但如果它能夠工作,它將提供很大的靈活性。如果你嘗試它,很想知道結果。

要啓動在Safari中使用的鏈接:

NSURL *url = [NSURL URLWithString:@"http://stackoverflow.com"]; 
if (![[UIApplication sharedApplication] openURL:url]) { 
    NSLog(@"%@%@", @"Failed to open url:", [url description]); 
} 
+0

問題與這種方法是計算單元格高度將非常困難,直到繪製完成後才能獲取Web視圖的內容高度,直到調用heightForRow> cellForRow – 2014-09-04 03:59:16

0

是在UITableView的在自己的行中的鏈接?如果是這樣,那麼您可以在單擊適當的行時在didSelectRowAtIndexPath內處理它。

4

您的問題有多種解決方案。

如果鏈接的單元格中的唯一對象,那麼你可以只讓調用UITableViewdidSelectRowAtIndexPath:(NSIndexPath *)indexPath功能來收集從表中的數據陣列的鏈接,然後用

[[UIApplication sharedApplication] openURL:myURL]; 

打開URL。

或者,您可以創建自己的UITableCell子類,該子類包含沒有圖像或背景(僅文本)的自定義按鈕(而不是圓形矩形按鈕),以便它具有鏈接的外觀(甚至可以着色文本藍色,並強調它......)。當用戶點擊按鈕時,你的處理函數會調用與上面相同的openURL函數。

上述方法效果最好,如果你在每個小區內的多個項目(這就是爲什麼你需要創建一個自定義單元格...