ios - 两个 viewController swift ios 中 uiwebview 的相同实例

标签 ios swift uiviewcontroller uiwebview singleton

这是我的情况

我有这个设置,

UIWebView webView

ViewControllerA {
  IBOutlet weak var webView : UIWebView
  override viewDidLoad { 
    doSomething()
  } 
}

ViewControllerB {
  IBOutlet weak var webView : UIWebView (different instance! wrong)
  override viewDidLoad { 
    doSomethingDifferent()
  } 
}

我使用选项卡栏 Controller 从 viewA 移动到 viewB 我想将我的 webView 从 viewA 移动到 viewB,这样我就可以在 View 底部显示完全相同的网页,并在 View 底部显示不同的信息,具体取决于我是在 viewA 还是 viewB

由于 webview 可以播放视频,所以我希望该视频同时在两个 View 中播放,这样我就无法重新加载 webView,只需移动它即可。

有什么想法可以实现这一目标吗?已经尝试过容器 View ,但它仍然是 UIWebView 的两个不同实例...是否可以在界面生成器或 swift 中执行此操作?

最佳答案

由于强制解包,以下代码不安全,但您可以将其用作引用。我已将 globalWebView 声明为全局变量。

第一个 View Controller :

var globalWebView: UIWebView?

class FirstViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        globalWebView = UIWebView(frame: CGRectMake(20, 30, 300, 300))
        globalWebView?.loadRequest(NSURLRequest(URL: NSURL(string: "https://www.youtube.com/embed/XLpDiIVX0Wo")!))
    }

    override func viewDidAppear(animated: Bool) {
        super.viewDidAppear(animated)
        self.view.addSubview(globalWebView!)
    }
}

第二个 View Controller :

class SecondViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override func viewDidAppear(animated: Bool) {
        super.viewDidAppear(animated)
        self.view.addSubview(globalWebView!)
    }
}

关于ios - 两个 viewController swift ios 中 uiwebview 的相同实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36849095/

相关文章:

swift - 如何使用 Storyboard ID 滑动 View Controller

objective-c - UITableView动态内容不会出现

ios - 当用户离开 iOS 应用程序时显示 Uiview

ios - 使用 AudioKit 的量化序列

swift - 参数 "coder"的静态 Var 缺少参数

ios - 在用户之间共享私有(private)数据库记录的最佳 BAAS?

ios - 以编程方式全屏打开 iframe 视频

ios - UICollectionViewCell 带有图像但没有自定义类

ios - Error Domain = NSCocoaErrorDomain Code=3840 "The operation couldn’ t 完成。 ( cocoa 错误 3840。)

ios - 我应该调用 [super viewDidDisappear :animated]; at the beginning or at the end of viewDidDisappear: