我正在使用iPad应用,我遇到了webview加载问题。我在顶部有一个ViewController
水平滚动桌面视图。在此表视图中,另一个tableview被添加为子视图并旋转90度,然后将自定义单元格加载到此视图中。这给了我水平滚动效果。然后,UIWebview直接位于tableview下方。 tableview由新闻文章填充,我想在选择文章时加载完整的网页。除UIWebView
无法加载外,一切正常。我已经尝试了我能想到的一切&无法弄清楚为什么。
有点复杂,如何将所有事情都设置得如此恶心,并尝试解释我能做的一切。 UIWebView所使用的主Viewcontroller使用HorizontalTableViewController作为其类。 tableview使用HorizontalTableCell作为其类。下面是我用来加载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);
}
从日志中我可以看到网址是正确的,但UIWebView仍然是空白的&不加载。 我已将webview设置为HorizontalTableViewController中的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'
任何帮助将不胜感激!
答案 0 :(得分:0)
如果我理解正确的情况,您不应该使用完整的不同视图控制器。视图控制器中的视图控制器永远不是一个好主意,如果它甚至可能的话。在没有控制器的情况下创建UITableView(或子类)。然后为UITableView创建一个属性,并在didSelectRowAtIndex中设置它的属性。
答案 1 :(得分:0)
目前尚不清楚为什么要在tableView:didSelectRowAtIndexPath:
中执行此操作,因为只有当用户点击表格中的某一行时才会调用该方法。应在tableView:cellForRowAtIndexPath:
中调用将内容放入单元格的代码。
但是,根据您的设计,您将遇到问题。您在视图控制器中有两个表视图,并且两者都将其委托设置为self
,然后在您实现的任何tableView:...
方法中,您需要检查tableView
参数所以你知道哪个表视图正在进行调用。
最后,您的HorizontalTableViewController
课程以某种方式包含您的UIWebView
,但它在问题中看起来不像您的描述。发布该位的代码 - 可能是您没有实例化Web视图。