我想知道是否可以在UITabBarViewController的所有标签栏中加载同一个WKWebView示例。如果是,请分享一些想法/想法。我想实现这一点:
**Tabbar 1:-**load stackOverflow.com> tap anywhere>它将加载另一个URL**标签栏2:-**想在这里看到新加载的URL(从第一个标签)
非常感谢!
aydmsdu91#
可以共享同一个示例,但您必须知道:一个视图不能同时添加到两个不同的视图。UIKit层次结构中的每个视图一次只能有一个超级视图。如果将视图添加到第二个超级视图,则该视图将从其上一个超级视图中删除。因此,这里的技巧是将wkwebview放在共享AppDelegate中,然后在您的childViewController中添加共享wkwebview作为viewWillAppear(_ animated:)中的子视图
viewWillAppear(_ animated:)
override func viewWillAppear(_ animated: Bool) { debugPrint("\(#function)") sharedWebView.frame = view.bounds sharedWebView.autoresizingMask = [.flexibleWidth,.flexibleHeight] view.addSubview(sharedWebView) }
这样,你就有了一个共享的wkwebview。
顺便说一句,我很难理解你的要求,但我还是写了一个演示项目:Tabbar 1:- load stackOverflow.com> tap anywhere>它将加载另一个URL标签栏2:-想在这里看到新加载的URL(从第一个标签)Check the whole project here
1条答案
按热度按时间aydmsdu91#
可以共享同一个示例,但您必须知道:
一个视图不能同时添加到两个不同的视图。UIKit层次结构中的每个视图一次只能有一个超级视图。如果将视图添加到第二个超级视图,则该视图将从其上一个超级视图中删除。
因此,这里的技巧是将wkwebview放在共享AppDelegate中,然后在您的childViewController中添加共享wkwebview作为
viewWillAppear(_ animated:)
中的子视图这样,你就有了一个共享的wkwebview。
顺便说一句,我很难理解你的要求,但我还是写了一个演示项目:
Tabbar 1:- load stackOverflow.com> tap anywhere>它将加载另一个URL
标签栏2:-想在这里看到新加载的URL(从第一个标签)
Check the whole project here