正在NSString
中加载UIWebView
的内容。
然后在另一个视图中编辑nsstring的内容。一旦我退回到该屏幕,NSString
中的内容就会更新,但是UIWebView
中的内容就不会更新。
- (void)viewWillAppear:(BOOL)animated{
self.responseMessageWebView = [[UIWebView alloc] initWithFrame:self.middlecontainerScroller.frame];
[self.middlecontainerScroller addSubview:self.responseMessageWebView];
self.responseMessageWebView.opaque=NO;
[self.responseMessageWebView.scrollView setShowsVerticalScrollIndicator:YES];
self.responseMessageWebView.scrollView.delegate=self;
self.responseMessageWebView.tintColor = [UIColor blackColor];
self.responseMessageWebView.delegate = self;
[self.responseMessageWebView setBackgroundColor:[UIColor clearColor]];
self.responseMessageWebView.userInteractionEnabled = YES;
self.responseMessageWebView.scrollView.bounces = false;
self.responseMessageWebView.scrollView.scrollEnabled = false;
[self.responseMessageWebView reload];
NSString* htmlHead=@"<!DOCTYPE html><html><head><style>\
* {\
word-wrap: break-word;\
}\
</style>\
</head>\
<body>";
NSString* html=[NSString stringWithFormat:@"%@ Hello world my testing string%@",htmlHead,@"</body></html>"];
[self.responseMessageWebView loadHTMLString:html baseURL:nil];
}
- (void)webViewDidFinishLoad:(UIWebView *)aWebView {}
一旦我弹出,字符串值将从Hello world my testing string
更新为my testing string
。
- (void)viewWillAppear:(BOOL)animated{
self.responseMessageWebView = [[UIWebView alloc] initWithFrame:self.middlecontainerScroller.frame];
[self.middlecontainerScroller addSubview:self.responseMessageWebView];
self.responseMessageWebView.opaque=NO;
[self.responseMessageWebView.scrollView setShowsVerticalScrollIndicator:YES];
self.responseMessageWebView.scrollView.delegate=self;
self.responseMessageWebView.tintColor = [UIColor blackColor];
self.responseMessageWebView.delegate = self;
[self.responseMessageWebView setBackgroundColor:[UIColor clearColor]];
self.responseMessageWebView.userInteractionEnabled = YES;
self.responseMessageWebView.scrollView.bounces = false;
self.responseMessageWebView.scrollView.scrollEnabled = false;
[self.responseMessageWebView reload];
NSString* htmlHead=@"<!DOCTYPE html><html><head><style>\
* {\
word-wrap: break-word;\
}\
</style>\
</head>\
<body>";
NSString* html=[NSString stringWithFormat:@"%@my testing string%@",htmlHead,@"</body></html>"];
[self.responseMessageWebView loadHTMLString:html baseURL:nil];
}
- (void)webViewDidFinishLoad:(UIWebView *)aWebView {}
我不能使用WKWebView
。有什么方法可以刷新UIWebView
吗?
答案 0 :(得分:1)
让我大吃一惊的是,您正在viewWillAppear:
中创建Webview并将其添加到其Superview中,但是可能永远不会清除它,因此如果您发现了一个重复的Webview导航离开该屏幕并返回。
您应该将viewWillAppear:
方法中当前使用的所有Webview配置代码移至viewDidLoad
之类的位置。这基本上意味着除了设置HTML字符串和最后的loadHTMLString:
调用所在的行以外的所有内容。您也不需要reload
调用,我认为它没有任何作用。
这可能会解决您的问题,但是如果没有解决,唯一无法说明的其他事情就是实际的htmlHead
属性。实际上是在某处更新吗?如果不是,则问题不是Webview,因为您没有更新数据。