0

如何使用多个 UITabBar 选项卡来控制单个 UIWebView?

一个例子:

Pressing tab1: UIWebView loads index.html
Pressing tab2: the same UIWebView loads customers.html
Pressing tab3: the same UIWebView loads tos.html

我的方法是将 UIWebView 放在 AppDelegate 中,并将每个 ViewController 的 self.webview 设置为单个 UIWebView。但是,WebView 会显示,但是是白色的并且不加载任何内容。

有什么提示吗?

4

3 回答 3

1

WebViews 很昂贵,因此您的方法可能是正确的,但您可能希望首先在每个选项卡视图控制器中创建一个单独的 webview,然后看看事情是否按您期望的那样工作。开销可能会开始导致您的应用开始接收内存警告,但这至少可以让您查看您的页面是否至少会在该上下文中正确加载。

另外,您能否发布一些代码来显示您如何将 webview 添加到每个视图控制器?如果您没有使用 -setFrame 设置 webview 的框架,一旦您将 webview 添加为视图控制器视图的子视图,它将无法正确显示。

于 2009-11-16T22:42:56.837 回答
1

您需要 -removeFromSuperview 然后 -addSubview 来移动 webview;只是重新分配给一个实例变量不会成功。

于 2009-11-16T23:56:30.730 回答
1

对于您正在尝试做的事情,标签栏确实是错误的模型。如果您想切换内容,您真正想要的是工具栏,因为这意味着以各种方式更改位置视图 - TabBar 用于在多个不相关的视图之间切换,因此当您尝试在多个选项卡中使用相同的视图。

现在,如果你真的有完全不相关的内容,为什么不考虑只使用不同的 UIWebViews,每个选项卡一个。它们并没有那么重,以至于加载多个实例真的会伤害任何东西,并且选项卡在按下之前不会加载内容,因此它们不会一次全部加载。为了节省内存,您甚至可以在切换选项卡时丢弃视图控制器。但是让每个视图管理自己的 Web 视图更有意义,这意味着您可以更轻松地保持内容缓存。

于 2009-11-17T00:16:22.853 回答