2012-07-22 77 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