如何使用didSelectRowAtIndexPath加载网页而不离开应用程序?

| 我正在解析RSS feed,并将结果加载到表中。当用户单击故事时,它们将被带到网页。 目前,我正在使用:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:story]];
问题是这会启动Safari并关闭我的应用程序。 可以这么说在我的应用程序中打开网页吗?我希望该网页显示为带有“完成”按钮,该按钮可以关闭该网页并将用户返回表格。 非常感谢任何帮助(和代码示例)。     
已邀请:
您可以在通过NavigationController pushViewController选择器启动的新视图控制器中使用UIWebView,并使工具栏项位于“在Safari中查看”,这将启动完整的Safari浏览器(并将您的应用置于后台/终止)。 一些示例代码片段: 假设: (1)您有一个名为:WebViewController(具有相同的.xib)文件的视图控制器。 (2)此视图控制器具有一个UIView,它是主视图的子视图;
@interface WebViewController: UIViewController <UIWebViewDelegate> {
    UIWebView *webview;
    NSString *someUrlToLoad;
}

@property (nonatomic, retain) IBOutlet UIWebView *webview;
@property (nonatomic, copy) NSString *someUrlToLoad;
在此视图控制器的viewDidLoad方法中:
-(void) viewDidLoad {
    [super viewDidLoad];
    [webview loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:self.someUrlToLoad]]];
}
当有人单击表视图中的单元格时,将加载此控制器:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    WebViewController *viewController = [[WebViewController alloc] initWithNibName:@\"WebViewController\" bundle:nil];
    viewController.someUrlToLoad = <url for this cell>;
    [self.navigationController pushViewController:viewController animated:YES];
    [viewController release];

}
您很可能希望在UIWebViewDelegate中包含一些挂钩,以在导航栏中停止/显示活动指示器,以便用户知道页面加载时发生了某些事情。     

要回复问题请先登录注册