2

刚接触这个网站,但在过去几个小时试图修复一些我知道必须非常简单的东西之后,我的头绝对让我丧命。

短篇故事:

  • 我有一个 UIViewController 和一个 UINavigationController
  • UIViewController (tableView) 是一个 UITableView,它解析和显示 RSS 提要故事
  • 第二个 UIViewController (newsWebView) 带有一个 UIWebView,它由 UINavigationController 推送,用于在用户单击 tableView 中的行时显示每个故事
  • 当用户完成 UIWebView 后,他们将被推回第一个视图 tableView

除了将每一行的 URL 推送到第二个控制器中的 webView 之外,我一切正常。它推送视图,但 URL 没有发送到第二个控制器,因此 webView 为空白。我在代码中的 NSLogs 也表明 URL 已成功创建,那么我需要做什么才能让 newsWebView 处理 URL?

表视图.m

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

    int storyIndex = [indexPath indexAtPosition: [indexPath length] - 1];

    NSString * storyLink = [[stories objectAtIndex: storyIndex] objectForKey: @"link"];

    // clean up the link - get rid of spaces, returns, and tabs...
    storyLink = [storyLink stringByReplacingOccurrencesOfString:@" " withString:@""];
    storyLink = [storyLink stringByReplacingOccurrencesOfString:@"\n" withString:@""];
    storyLink = [storyLink stringByReplacingOccurrencesOfString:@"  " withString:@""];

    NSLog(@"storyLink: %@", storyLink);


    if (storyLink != nil && ![storyLink isEqualToString:@""]) {
        // Wrapping the troublesome call with logs so you should be able to see if this is the line that is killing your app
        NSLog(@"about to create url");
        NSURL *url = [NSURL URLWithString:storyLink];
        NSLog(@"creating url was successful");

        //URL Request Object
        NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];

        //Load the request in the UIWebView
        newsWebView *detailViewController = [[newsWebView alloc] initWithNibName:@"newsDetailWebView" bundle:nil];
        //detailViewController.item = [[stories objectAtIndex: storyIndex] objectForKey: @"link"];
        [self.navigationController pushViewController:detailViewController animated:YES];
        //[detailViewController loadRequest:requestObj];
        [detailViewController release];
    }
}

那么,我需要在 newsWebView.m 中的 viewDidLoad 中添加什么?或者,就此而言,我的 tableView 的 didSelectRowAtIndexPath 有什么问题?

新闻WebView.m

- (void)viewDidLoad {


    }

非常非常感谢你。我需要服用一些Advil!

4

1 回答 1

2

在你的 newsWebView 类中urlObject有一个类型的实例变量。NSUrl确保添加@property@synthesize对象。

然后

newsWebView *detailViewController = [[newsWebView alloc] initWithNibName:@"newsDetailWebView" bundle:nil];
        newsWebview.urlObject = url;
        [self.navigationController pushViewController:detailViewController animated:YES];
        //[detailViewController loadRequest:requestObj];
        [detailViewController release];

在 newsWebView.m

- (void)viewDidLoad {
[webView loadRequest:[NSURLRequest requestWithURL:urlObject]];
}
于 2011-05-04T10:51:16.437 回答