didSelectRowAtIndexPath显示在UIWebView中

时间:2012-07-22 22:06:56

标签: ios parsing uitableview webview feed

我正在使用MWFeedParser,我想点击一个单元格来打开一个webview而不是另一个UITableViewController。这就是在didSelect中发生的......

- (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帖子获取URL,以便webview知道要显示的内容。这是如何完成的,如何更改上述方法以打开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给了我一个错误。

2 个答案:

答案 0 :(得分:0)

O.k

  1. 您可以在用户点按单元格时打开所需的任何视图控制器。顺便说一下,你甚至可以做任何你想做的事。
  2. DetailTableViewController *detail = [[DetailTableViewController alloc] initWithStyle:UITableViewStyleGrouped];正如我所说,可以是你想要的任何东西,
  3. 据我所知,你不能继承UIWebView(你可以,但苹果建议不要)。
  4. 相反,你应该创建一个UIViewController并添加一个UIWebView作为它的视图或子视图。
  5. 然后在- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath初始化此viewController并将url作为参数传递给viewController。
  6. viewDidAppear中打开webView中的网址。
  7. 祝你好运

答案 1 :(得分:0)

检查webViewController的基类,我怀疑它不包含方法initWithURL。 (顺便说一句,webViewController,如果它是一个类,则不遵循推荐的命名约定 - 类名称应以大写字母开头,变量/实例方法以小写字母开头 - 请查看Apple的指南{{3 }})

此外,@"http://www.google.com"不是网址 - 它是一个字符串。要创建URL对象,您需要执行以下操作:

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

然后使用url对象传递给initWithURL

等任何方法

希望这可以帮助您解决initWithURL问题。

要在点击单元格时打开网页视图,请在UIWebView内设置didSelectRowAtIndex,然后将包含UIWebView的控制器推到导航控制器上。