0

我正在使用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 知道要显示什么。这是如何完成的,我将如何更改上述方法以打开 web 视图?

变成

- (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 给了我一个错误。

4

2 回答 2

0

  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. viewDidAppearwebView 中打开 URL。

祝你好运

于 2012-07-22T22:48:12.293 回答
0

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

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

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

然后使用该url对象传递给任何方法,例如initWithURL

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

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

于 2012-07-23T00:24:18.077 回答