【问题标题】:load data into a UIWebView created programmatically将数据加载到以编程方式创建的 UIWebView
【发布时间】:2012-03-25 16:50:38
【问题描述】:

我正在设置一个 ViewController,它将容纳几个 UIView,包括 UIWebView

我正在 viewDidLoad 方法中以编程方式创建和添加这些视图。

这种方法令人满意吗?还是我做的硬件成本太高了。

以及如何将新数据加载到在 ViewDidLoad 方法中创建的 WebView 中。

我有一个正确的 UIWebView 类型,然后在 ViewDidLoad 我做:

detailsView = [[UIWebView alloc] initWithFrame:CGRectMake(500, 0, 512, 768)];

这似乎不起作用:

- (void)loadDetailedContent:(NSString *)s
{
    [detailsView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.com"]]];
    [detailsView reload];
}

等待您的回复,提前谢谢您

【问题讨论】:

  • 但是发生了什么?你添加了 UIWebView 的Subview 吗?你有互联网连接吗?
  • 当我从 loadDetailedContent 调用时,detailsView 为 nil

标签: objective-c ios xcode


【解决方案1】:

您当然可以通过编程方式在 viewController 的 viewDidLoad 中创建和添加子视图,但如果您希望它们出现在屏幕上,则必须记住调用 addSubview

- (void)viewDidLoad
{
    [super viewDidLoad];

    detailsView = [[UIWebView alloc] initWithFrame:CGRectMake(500, 0, 512, 768)];
    [self.view addSubview:detailsView];
}

关于第二个关于将数据加载到 webview 中的问题,无需在调用 loadRequest: 后立即调用 reload

- (void)loadDetailedContent:(NSString *)s
{
    [detailsView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.com"]]];
}

【讨论】:

  • 我确实将它们添加到主视图控制器但现在我想加载数据,但它没有效果,谢谢回复
  • 问题是当时detailsView是nil,这是否意味着每次我想加载新数据时我必须用一个框架重新初始化它并将它添加到一个子视图中?
  • detailsView 不应为 nil,因为您在 viewDidLoad 期间对其进行了初始化。你的意思是在 viewDidLoad 运行之前调用 loadDetailedContent 吗?
  • 不,我在 viewDidLoad 之后调用它,但它仍然是 null 我不知道
  • @property (nonatomic, 保留) UIWebView *detailsView;这就是房产的样子,也许问题出在这里?
猜你喜欢
  • 2012-01-08
  • 2012-09-17
  • 2019-05-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-20
  • 1970-01-01
相关资源
最近更新 更多