我正在使用UIWebView
正在开发一个应用程序,现在遇到下面的问题请帮我解决一下。
ViewController
并返回时,它会变为白色一秒钟然后再次绘制我的HTML内容。 有什么方法可以阻止这种情况吗?我的html内容没有变化,所以我可以将其设置为固定内容或更快地绘制它吗?
这就是我在webview中设置html的方式:
webView.loadHTMLString(htmlData, baseURL: nil)
答案 0 :(得分:2)
您的HTMl代码没有变化,因此将webView
加载代码放在viewDidLoad
内而不是viewDidAppear
,因为viewDidAppear
始终在view
时调用出现,viewDidLoad
在view
加载时被称为单一时间。
答案 1 :(得分:2)
您可以在应用程序的生命周期中执行一次指导webview的代码,或者相应地进行自定义。
// if you are navigating your application using navigation controller enables you to come back to the rootview without executing whole code of that class associated with view.
// this doesn't apply the whole life cycle of view controller
[self.navigationController pushViewController:vc animated:YES];
// if you navigating through below code this apply the whole life cycle concept of view controller.
[self presentViewController:vc animated:NO completion:nil];
你必须看看视图控制器的生命周期这里是一个有用的apple doc
viewController生命周期短信
ViewDidLoad - 在您创建类并从xib加载时调用。非常适合初始设置和一次性工作。
ViewWillAppear - 在视图出现之前调用,适用于隐藏/显示字段或每次在视图可见之前要执行的任何操作。由于您可能会在视图之间来回切换,因此每次您的视图即将出现在屏幕上时都会调用此视图。
ViewDidAppear - 在视图出现后调用 - 开始制作动画或从API加载外部数据的好地方。
ViewWillDisappear / DidDisappear - 与ViewWillAppear / ViewDidAppear相同。
ViewDidUnload / ViewDidDispose - 在Objective C中,这是你清理和发布东西的地方,但这是自动处理的,所以你真的不需要这么做。