2009-09-24 50 views
0

我有一个UIWebView显示和HTML页面有一些复选框,单选按钮。我的应用程序具有切换两个控制器的TabBar控制器。我如何维护UIWebView的当前状态。 (例如,我选择了一个复选框,我改变了标签,并转到其他ViewController,并再次回到UIWebView.WebView重置自己,并开始...我想维护UIWebView的状态(所有复选框单击) ..我怎么能做到这一点?iphone - 如何去思考UIWebView的状态?

什么想法?

在此先感谢

回答

2

这听起来像您加载viewDidAppear您的Web视图:,或者被调用每个其他一些方法如果你在viewDidLoad中加载你的web视图,它只会被加载一次,并且当你切换标签页时将保持它的状态


编辑:当我在2009年写了这个答案后,我显然没有理解视图控制器生命周期以及我想我做到了。科里弗洛伊德是对的。 viewDidLoad:方法也可以多次调用,因为如果未显示视图,UIViewController将在内存不足的情况下卸载其视图。当用户切换回视图时,viewDidLoad被再次调用以重构视图。

有多尴尬。

+1

确实如此,但需要注意的是:如果视图控制器在视图不在屏幕时收到内存警告,它将被破坏,并被延长失去其状态。 – 2009-09-24 12:43:21

0

我有一个想法,这可能有助于:

  • 摆脱你的应用到网页中的状态,给变量的值与被叫URL请求参数,让网页处理,并将处理视图相应的表单元素。
  • 从网页获取状态返回到您的应用程序,让网页每次更新其元素时都会刷新,并使用新网址提供更改元素的新值。回到你的应用程序,你可以实现UIWebViewDelegate,并且在方法WebViewDidFinishLoad(或者你喜欢的WebViewDidStartLoad)中使用webView.request.URL来解析GET参数并相应地更新你的应用程序。

希望这会有所帮助。