将UIWebView推送为详细视图(表)

时间:2011-11-16 10:27:05

标签: iphone ipad uitableview uiviewcontroller uiwebview

我想创建一个应用程序,我会说10个表行(列表视图),每个都有详细视图。现在对于每个细节视图,我想显示10个不同的远程htmls(在UIWebView中)?

我该怎么做?我应该使用数组来存储10个URL吗?如何将URL从列表传递到详细信息视图?

只是要添加,我还想在详细视图上显示iAd。希望能够轻松整合。

任何带有源代码的示例应用都很棒。

请帮帮我。谢谢。

2 个答案:

答案 0 :(得分:2)

您可以创建一个充当“详细视图”的WebViewController。在项目中添加一个新的UIViewController子类,只需在您的nib文件中添加UIWebViewADBannerView。为您的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

工作得很好,允许我在我的观点之间前后传递一个字符串和一个数组。