这是我的情况
我有这个设置,
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/