【问题标题】:How to redirect UIWebview?如何重定向 UIWebview?
【发布时间】:2013-04-11 08:16:32
【问题描述】:

我是 iPhone 开发的新手,我想在用户单击特定行(Google、Facebook、Yahoo)时根据 URL 转到UIWebview。我希望页面重定向到 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 {

    }
}

谁能帮帮我?

【问题讨论】:

  • UIWebView 是否由同一个视图控制器控制?如果不是,那么您应该对另一个管理 UIWebView 的 ViewController 执行 segue,并在那里传递一个链接。
  • 你能给我看一些示例代码吗?

标签: ios objective-c uitableview uiwebview


【解决方案1】:

如果一个 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,然后触发 segue。 一种常见的做法是设置 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 的 segue 有一个标识符 @"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];

代码不完整,可能在某些地方不正确,但我希望它能帮助您实现目标。

【讨论】:

    【解决方案2】:

    您必须创建一个新控制器并在单击时导航到该控制器。此外,您必须将链接传递给另一个控制器才能将 url 加载到 webview。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-21
    • 1970-01-01
    • 1970-01-01
    • 2010-10-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多