0

我想要做的是我有一个书签系统,但我的问题是从第二个 UIViewController 中的 UITableView 获取 URL,并将选择的 URL 加载到第一个 UIViewController 中的 WebView 是可能的。我确实有一些代码,但这不起作用我需要解决我的问题

这是我目前拥有的代码

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

    ViewController *controller = [[ViewController alloc]init];

    NSString *urlWeb = [subtitles objectAtIndex:indexPath.row];
    [controller.igiWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:urlWeb]]];

    [tableView deselectRowAtIndexPath:[tableView indexPathForSelectedRow] animated:YES];
    [self dismissViewControllerAnimated:YES completion:nil];     

}

4

2 回答 2

0

Try this one

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

ViewController *controller = [[ViewController alloc]init];

NSString *urlWeb = [subtitles objectAtIndex:indexPath.row];
[controller.igiWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:urlWeb]]];

[self.navigationController pushViewController:controller animated:YES];

 }
于 2012-12-04T12:47:29.607 回答
0

您正在做的是初始化先前视图控制器的另一个实例,而不是使用加载到导航堆栈中的现有实例。因此,当您调用dismissViewController 方法时,您的视图将被关闭,并且您既没有使用新创建的实例也没有使用现有实例。我建议创建一个委托并使用它将选定的 URL 传递回 FirstViewController。@interface在 FirstViewController.h 中,在 FirstViewController类的块之外使用以下代码。

@protocol UserSelectionDelegate
-(void)userSelected:(NSString*)selectedURLString;
@end

在 SecondViewController 的@interface块内,

id<UserSelectionDelegate> delegate; //Make a property of this as well

并在 SecondViewController 的didSelectRowAtIndexPath:方法中使用:

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

NSString *urlWeb = [subtitles objectAtIndex:indexPath.row];
[self.delegate userSelected:urlWeb];
[tableView deselectRowAtIndexPath:[tableView indexPathForSelectedRow] animated:YES];
[self dismissViewControllerAnimated:YES completion:nil];
}

现在您所要做的就是返回 FirstViewController.m,在您创建 SecondViewController 的实例处添加secondVCInstace.delegate = self;,然后实现userSelected:将 URL 加载到 FirstViewController 的 webView 中的方法。

于 2012-12-16T13:23:41.573 回答