iOS - UITableView 将 URL 推送到不同视图控制器中的 UIWebView
Posted
技术标签:
【中文标题】iOS - UITableView 将 URL 推送到不同视图控制器中的 UIWebView【英文标题】:iOS - UITableView Pushing URL to UIWebView in Different View Controller 【发布时间】:2011-05-04 10:44:28 【问题描述】:刚接触这个网站,但在过去几个小时尝试修复一些我知道必须非常简单的问题后,我的脑袋简直要死了。
短篇小说:
我有一个带有 UINavigationController 的 UIViewController UIViewController (tableView) 是一个 UITableView,用于解析和显示 RSS 提要故事 第二个 UIViewController (newsWebView) 带有一个由 UINavigationController 推送的 UIWebView,用于在用户单击 tableView 中的行时显示每个故事 当用户完成 UIWebView 后,他们会被推回到第一个视图 tableView除了将每一行的 URL 推送到第二个控制器中的 webView 之外,我一切正常。它推送视图,但 URL 没有发送到第二个控制器,因此 webView 为空白。我在代码中的 NSLogs 也表明 URL 正在创建成功,那么我需要做什么才能让 newsWebView 处理 URL?
tableView.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 有什么问题?
newsWebView.m
- (void)viewDidLoad
非常非常感谢。我需要服用一些Advil!
【问题讨论】:
【参考方案1】:在您的 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]];
【讨论】:
谢谢你,7KV7!我意识到它必须如此简单,老实说,发布它时感到有点羞耻,但我知道 SO 社区会很有帮助而且很好! +1以上是关于iOS - UITableView 将 URL 推送到不同视图控制器中的 UIWebView的主要内容,如果未能解决你的问题,请参考以下文章
如何将 Json 数据推送到 UITableView 中的标签?
通过 segue 问题在 UITableView 和 UIViewController 之间推送数据