我想创建一个应用程序,我会说10个表行(列表视图),每个都有详细视图。现在对于每个细节视图,我想显示10个不同的远程htmls(在UIWebView中)?
我该怎么做?我应该使用数组来存储10个URL吗?如何将URL从列表传递到详细信息视图?
只是要添加,我还想在详细视图上显示iAd。希望能够轻松整合。
任何带有源代码的示例应用都很棒。
请帮帮我。谢谢。
答案 0 :(得分:2)
您可以创建一个充当“详细视图”的WebViewController。在项目中添加一个新的UIViewController
子类,只需在您的nib文件中添加UIWebView
和ADBannerView
。为您的webView创建一个出口,你应该很高兴。从列表视图中,您可以创建一个新的detailViewController并将特定于行的URL加载到webView:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSString* url = [[dataArray objectAtIndex:indexPath.row] objectForKey:@"url"];
if (![url isEqualToString:@""]) {
WebViewController* detailViewController = [[WebViewController alloc] initWithNibName:@"WebViewController" bundle:nil];
[self.navigationController pushViewController:detailViewController animated:YES];
[detailViewController.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:url]]];
[detailViewController release];
}
}
这是一种快速的方法 - 你可以创建一个自定义的-init方法,如果你愿意,可以接受一个url。您还应该使用UIWebViewDelegate
的方法来显示有关webView的一些加载反馈/错误消息:
@interface WebViewController : UIViewController <UIWebViewDelegate> {
IBOutlet UIWebView* webView;
}
答案 1 :(得分:0)
您希望能够将数据从一个viewController传递到另一个viewController。正确的方法是使用Protocols and Delegates
在此处查看此示例 - Sharing data between view controllers and other objects @ iPhone Dev SDK
工作得很好,允许我在我的观点之间前后传递一个字符串和一个数组。