webview未从表格视图单元格加载

时间:2013-08-23 09:53:43

标签: iphone xcode webview tableview

我添加了一个自定义单元格。每当有人按下添加按钮时,会弹出警报视图,并添加网站名称。一旦按下保存,它将以他们选择的任何名称保存在表格视图单元格中。然后,一旦有人点击该单元格,我希望它在我的网页视图中加载http://。唯一的问题是它没有加载。我做错了什么?

这是我的表视图控制器

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSString *cellIdentifier = @"cellTwo";
    UITableViewCell *cell = [myTableView dequeueReusableCellWithIdentifier:cellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellIdentifier];
    }

    if (indexPath.section == 0) {
        cell.textLabel.text = [NSString stringWithFormat:@"%@",[tableData objectAtIndex:indexPath.row]];
    }
    return cell;
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSLog(@"Index Selected,%d",indexPath.row);
    MainTwoViewController *View = [self.storyboard instantiateViewControllerWithIdentifier:@"mainTwo"];

    View.urlString = [[NSString alloc] initWithFormat:@"http://www.%@",tableData];
    View.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
}        

-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
    //Only do the following action if the user hits the ok button
    if (buttonIndex == 1) {
        NSString *tapTextField = [alertView textFieldAtIndex:0].text;
        if (!tableData) {
            tableData = [[NSMutableArray alloc]init];
        }
        [tableData insertObject:tapTextField atIndex:0];
        [myTableView reloadData];
}

当然我把它放在mainTwo视图控制器中,所以它加载了urlString。

[self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:self.urlString]]];

3 个答案:

答案 0 :(得分:0)

您实例化视图控制器但不显示它。

改为使用storyboard segues并在prepareForSegue中配置新的视图控制器。

另外,请检查以下内容:
如果您使用的是故事板,则很可能您不必在cellForRowAtIndexPath中创建单元格。

另外,简化:
<击> [NSString stringWithFormat@"%", string];
- &GT; string

最后,在加载请求之前,检查到达新视图控制器的URL。确保网址正确无误。实现UIWebViewDelegate方法以检查加载失败或意外返回数据。

答案 1 :(得分:0)

我认为你的这段代码

View.urlString = [[NSString alloc] initWithFormat:@"http://www.%@",tableData];

应该像

View.urlString = [[NSString alloc] initWithFormat:@"http://www.%@",[tableData objectAtIndex:indexPath.row]];

在您的didSelectRowAtIndexPath方法中,建议您使用NSLog检查丢失数据的位置

答案 2 :(得分:-1)

好的,我刚刚发现了你的问题。

您应该做的是首先在自定义单元格标签上放置一个轻击手势。

UITapGestureRecognizer *openURLTapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(openURLTapped:)];

keypadDisableTapGestureRecognizer.numberOfTapsRequired = 1;
keypadDisableTapGestureRecognizer.numberOfTouchesRequired = 1;

[cell.textLabel addGestureRecognizer:openURLTapGestureRecognizer];

现在,在此openURLTapped中,您可以传递网址并将其打开。

-(void)openURLTapped:(UITapGestureRecognizer*)tap
{
    // your code here
}

它肯定会解决您的问题。