0

私がやろうとしているのは、ブックマークシステムを設置していることですが、私の問題は、2 番目の UIViewController の UITableView から URL を取得し、選択した URL をロードして最初の UIViewController の WebView にロードすることです。いくつかのコードが配置されていますが、それが機能しないため、問題の解決策が必要です

私が現在持っているコードはheresです

-(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

ナビゲーション スタックに読み込まれた既存のインスタンスを使用する代わりに、以前のビュー コントローラーの別のインスタンスを初期化しています。したがって、dismissViewController メソッドを呼び出すと、ビューは閉じられ、新しく作成されたインスタンスも既存のインスタンスも使用されません。デリゲートを作成し、それを使用して選択した URL を FirstViewController に戻すことをお勧めします。@interfaceFirstViewController.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 のインスタンスを作成した時点で追加し、URL を FirstViewController の webView にロードするメソッドをsecondVCInstace.delegate = self;実装するだけです。userSelected:

于 2012-12-16T13:23:41.573 に答える
0

これを試してみてください

-(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 に答える