【问题标题】:Control and access webview on each view控制和访问每个视图上的 webview
【发布时间】:2010-12-30 13:05:08
【问题描述】:

基本上我在 SecondViewController 上有一个 webview,我希望 webview 像标签栏一样在每个视图上可见,并且在每个视图上完全可控。

请注意,网页视图将在带有在线幻灯片的网页上,因此我不能简单地在每个视图上重新加载

在 SecondViewController 我也有

- (void)webViewDidFinishLoad:(UIWebView *)MyWebView {

我试过了

[self.view addSubview: SecondViewController.MyWebView ]

但我不相信我正确使用它,因为我不知道如何声明 SecondViewController

谢谢

梅森

【问题讨论】:

    标签: iphone objective-c uiwebview webview


    【解决方案1】:

    Apple 表示当时只有一个 UIViewController 以避免向视图控制器发送方向和其他通知问题。

    因此,对于您的问题,我建议您拥有一个 UIViewController 来管理您的所有视图(作为视图控制器视图的子视图),并将 webview 作为子视图,但显示在其他子视图的前面。

    因此,当您需要更改视图时,只需在旧视图中执行 removeFromSuperview 并在新视图中执行 addSubview。

    如果您绝对需要为您的视图使用不同的 UIViewController,您可以创建一个包含 UIWebView 成员和 isLoaded 布尔成员的单例类(单例类是 UIWebView 的委托,它会检查内容是否加载到设置 isLoaded 成员。

    当您需要 UIWebView 时,只需使用单例类获取它,添加为子视图并检查内容是否已使用 isLoaded 成员加载。

    如果内容尚未加载,请在 UIWebView 上执行 loadURL。

    【讨论】:

      【解决方案2】:

      不明白你到底想要什么,但你可以模态地展示你的控制器:

      MyWebViewController *wvc = [[MyWebViewController alloc]init];
      wvc.myUrlIWantToOpenOnStart = @"http://www.mysampleurl.com";
      [self presentModalViewController:wvc];
      [wvc release];
      

      【讨论】:

      • 这到底是做什么的?就像它在所有视图上都是完全可控的?
      • 它会在当前视图上方打开一个视图。您几乎可以在任何地方展示它,并且您将拥有一个功能齐全的网络浏览器。
      猜你喜欢
      • 1970-01-01
      • 2011-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-27
      • 2016-01-05
      • 2012-10-26
      相关资源
      最近更新 更多