0

我正在开发一个 iPad 应用程序,但我在加载 webview 时遇到了问题。我ViewController在顶部有一个水平滚动表格视图。在这个表视图中,另一个表视图被添加为子视图并旋转 90 度,然后将自定义单元格加载到其中。这给了我水平滚动效果。然后 UIWebview 就在 tableview 的正下方。表格视图由新闻文章填充,我想在选择文章时加载整个网页。除了UIWebView不加载外,一切正常。我已经尝试了我能想到的一切,但不知道为什么。

一切的安排方式有点复杂,所以我会尽力解释一切。UIWebView 所在的主 Viewcontroller 使用 Horizo​​ntalTableViewController 作为其类。tableview 使用 Horizo​​ntalTableCell 作为它的类。这是我用来加载 UIWebView 的代码:

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


[tableView deselectRowAtIndexPath:indexPath animated:YES];



NSString *loadURL;
loadURL=[[[NSString alloc] initWithString:urlString]stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
NSURL* url = [NSURL URLWithString:loadURL];

[self.horizontalTableViewController.webView loadRequest:[NSURLRequest requestWithURL:url]];







 NSLog(@"Load URL = %@",loadURL);

}

从日志中我可以看到 url 是正确的,但 UIWebView 保持空白并且没有加载。我已将 webview 设置为 Horizo​​ntalTableViewController 中的 Outlet。

视图层次结构是:

2012-06-04 10:22:08.568 Bandz[21211:fb03] *** Printing out all the subviews of     HorizontalTableViewController (UIViewController) ***
2012-06-04 10:22:08.570 Bandz[21211:fb03]    [0]: class: 'UITableView'
2012-06-04 10:22:08.570 Bandz[21211:fb03]       [0]: class: 'UIImageView'
2012-06-04 10:22:08.571 Bandz[21211:fb03]       [1]: class: 'UIImageView'
2012-06-04 10:22:08.571 Bandz[21211:fb03]    [1]: class: 'UINavigationBar'
2012-06-04 10:22:08.572 Bandz[21211:fb03]       [0]: class: 'UINavigationBarBackground'
2012-06-04 10:22:08.572 Bandz[21211:fb03]       [1]: class: 'UINavigationItemView'
2012-06-04 10:22:08.572 Bandz[21211:fb03]       [2]: class: 'UINavigationButton'
2012-06-04 10:22:08.573 Bandz[21211:fb03]          [0]: class: 'UIButtonLabel'
2012-06-04 10:22:08.573 Bandz[21211:fb03]    [2]: class: 'UIWebView'
2012-06-04 10:22:08.574 Bandz[21211:fb03]       [0]: class: '_UIWebViewScrollView'
2012-06-04 10:22:08.575 Bandz[21211:fb03]          [0]: class: 'UIImageView'
2012-06-04 10:22:08.575 Bandz[21211:fb03]          [1]: class: 'UIImageView'
2012-06-04 10:22:08.576 Bandz[21211:fb03]          [2]: class: 'UIImageView'
2012-06-04 10:22:08.576 Bandz[21211:fb03]          [3]: class: 'UIImageView'
2012-06-04 10:22:08.577 Bandz[21211:fb03]          [4]: class: 'UIImageView'
2012-06-04 10:22:08.595 Bandz[21211:fb03]          [5]: class: 'UIImageView'
2012-06-04 10:22:08.595 Bandz[21211:fb03]          [6]: class: 'UIImageView'
2012-06-04 10:22:08.596 Bandz[21211:fb03]          [7]: class: 'UIImageView'
2012-06-04 10:22:08.596 Bandz[21211:fb03]          [8]: class: 'UIImageView'
2012-06-04 10:22:08.597 Bandz[21211:fb03]          [9]: class: 'UIImageView'
2012-06-04 10:22:08.597 Bandz[21211:fb03]          [10]: class: 'UIWebBrowserView'

任何帮助将不胜感激!

4

2 回答 2

0

如果我正确理解这种情况,您不应该使用完全不同的视图控制器。如果可能的话,视图控制器中的视图控制器绝不是一个好主意。创建一个没有控制器的 UITableView(或子类)。然后为 UITableView 创建一个属性并在您的 didSelectRowAtIndex 中设置它的属性。

于 2012-06-03T20:50:43.297 回答
0

目前尚不清楚您为什么要在 中执行此tableView:didSelectRowAtIndexPath:操作,因为该方法仅在用户点击表格中的一行时才会调用。应该调用将某些东西放入单元格的代码tableView:cellForRowAtIndexPath:

但是,对于您的设计,您将遇到问题。您的视图控制器中有两个表视图,并且它们的委托都设置为self,然后在tableView:...您实现的任何方法中,您都需要检查tableView参数,以便知道哪个表视图正在进行调用。

最后,您的HorizontalTableViewController课程以某种方式包含您UIWebView,但它看起来不像您在问题中的描述。也发布该位的代码 - 可能是您没有实例化 Web 视图。

于 2012-06-03T20:51:57.070 回答