-1

私は iPhone 開発にUIWebview不慣れで、ユーザーが特定の行 (Google、Facebook、Yahoo) をクリックしたときの URL に基づいて移動したいと考えています。ページを UIWebview にリダイレクトしたい。

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

    SBJsonParser *parser = [[SBJsonParser alloc] init];
    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"URL"]];
    NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
    NSString *json_string = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding];
    statuses = [parser objectWithString:json_string error:nil];

    if (indexPath.row == 0) {
        //What do i write in here
    } else if(indexPath.row == 1) {

    } else if(indexPath.row == 2) {

    } else {

    }
}

誰でも私を助けることができますか?

4

2 に答える 2

0

webView が同じ ViewController によって管理されている場合 (したがって、ViewController には次のようなプロパティがあります):

@property (nonatomic, retain) UIWebView *webView;

次に、次のようにリンクを開くことができます。

    NSURL *url = [NSURL URLWithString:@"http://your-url-goes-here.com"];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [self.webView loadRequest:request];

ただし、webView が別の ViewController によって管理されている場合は、その ViewController にリンクを渡してから、セグエをトリガーする必要があります。一般的な方法は、リンクを渡すように viewController のプロパティを設定することです。

たとえば、WebViewController.h

...
@property (nonatomic, copy) NSString *linkToOpen; //My fantasy isn't really working right now :)
...

WebViewController.m で

...
- (void)viewDidLoad
{
    [super viewDidLoad];
    NSURL *url = [[[NSURL alloc] initWithString:self.linkToOpen] autorelease];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [self.webView loadRequest:request];
}
...

そして、ViewController から WebViewController へのセグエには識別子 @"myTestSegue" があり、次のように実行できます。

WebViewController *webViewController = [[WebViewController alloc] initWithStyle:/*I don't honestly remember what to write here, sorry :(*/];
webViewController.linkToOpen = @"your link goes here. You can assign it inside a switch operator.";
[self.navigationController pushViewController:webViewController animated:YES];
[webViewController release];

コードは不完全で、どこか間違っている可能性がありますが、目標を達成するのに役立つことを願っています。

于 2013-04-11T08:48:59.997 に答える
-1

新しいコントローラーを作成し、クリックでそのコントローラーに移動する必要があります。また、URLをwebviewにロードするには、リンクを別のコントローラーに渡す必要があります。

于 2013-04-11T08:39:54.340 に答える