2012-07-22 81 views
0

我使用的是MWFeedParser,我想要點擊一個單元格來打開一個webview而不是另一個UITableViewController。這是在didSelect會發生什麼...在UIWebView中顯示的didSelectRowAtIndexPath

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 

// Show detail 
DetailTableViewController *detail = [[DetailTableViewController alloc] initWithStyle:UITableViewStyleGrouped]; 
detail.item = (MWFeedItem *)[itemsToDisplay objectAtIndex:indexPath.row]; 
[self.navigationController pushViewController:detail animated:YES]; 


// Deselect 
[self.tableView deselectRowAtIndexPath:indexPath animated:YES]; 

} 

我想我的第一個障礙是獲得每個RSS文章的網址,使web視圖知道要顯示的內容。這是如何完成的,我將如何去改變上述方法來打開一個webview?

改爲

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 

webViewController *webView = [[webViewController alloc] initWithURL:@"http://www.google.com"]; 
webView.item = (MWFeedItem *)[itemsToDisplay objectAtIndex:indexPath.row]; 
[self.navigationController pushViewController:webView animated:YES]; 


[self.tableView deselectRowAtIndexPath:indexPath animated:YES]; 

} 

但initWithURL是給我的錯誤。

回答

0

檢查基類的webViewController,我懷疑它不包含方法initWithURL。 (順便說一句,webViewController,如果它是一類,不遵循建議的命名約定或者 - 類名稱應該以大寫字母開頭,並且變量/實例方法開始與小寫 - 看看蘋果的指導方針here

而且,@"http://www.google.com"不是網址 - 它是一個字符串。要創建一個URL對象,你需要這樣做:

NSURL *url = [NSURL URLWithString:@"http://www.google.com"]; 

然後使用url對象傳遞給任何方法像initWithURL

希望這有助於,並讓你的軌道上解決您的initWithURL問題。

爲了在點擊單元格時打開網頁視圖,請先看看this tutorial,注意其viewDidLoad方法中的代碼。瞭解網絡視圖類的工作原理後,可以使用相同的代碼在didSelectRowAtIndex(而不是教程中的viewDidLoad)中設置UIWebView,然後將包含UIWebView的控制器推入導航控制器。

+0

沒有明顯的@interface你是對的,並且感謝關於命名的提示。這仍然是新的。 我現在明白了,但我仍然無法讓didSelectRow觸發一個新的屏幕。 – Coltrane 2012-07-23 01:11:55

+0

我已經更新了我的答案,並提供了一個可能對您有幫助的教程鏈接。 – Stretch 2012-07-23 01:43:24

+0

謝謝,這很有幫助。 – Coltrane 2012-07-23 20:10:11

0

O.k

  1. 可以當用戶點擊一個細胞打開你想要的任何視圖控制器。順便說一句,你甚至可以做任何你想要的東西。
  2. DetailTableViewController *detail = [[DetailTableViewController alloc] initWithStyle:UITableViewStyleGrouped];我說可以是任何你想要的,但
  3. 據我知道你不能繼承一個UIWebView(你可以,但蘋果建議不要這麼做)。
  4. 相反,你應該創建一個UIViewController並添加一個UIWebView,因爲它的視圖或子視圖。
  5. 然後在你的- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath init初始化這個viewController並將url作爲參數傳遞給viewController。
  6. viewDidAppear在您的webView中打開URL。

好運

+0

試圖使用'webViewController * web視圖= [[webViewController頁頭] initWithURL:@ 「http://www.google.com」];' 但我發現了一個錯誤,對initWithURL – Coltrane 2012-07-23 00:03:21