我有一个简单的Swift项目,其中:
ViewController A(class ViewController: UIViewController)呈现ViewController B - (class WebViewController: UIViewController, WKNavigationDelegate, CLLocationManagerDelegate, WKScriptMessageHandler).
ViewController B本质上只是一个WKWebView,这里是viewDidLoad():
let contentController = WKUserContentController();
contentController.addScriptMessageHandler(
self,
name: "eventHandler"
)
let config = WKWebViewConfiguration()
config.userContentController = contentController
webView = WKWebView(frame: CGRectZero, configuration: config)
webView.navigationDelegate = self
webView.allowsBackForwardNavigationGestures = false
view = webView
Run Code Online (Sandbox Code Playgroud)
因此,当ViewController B出现时,我基本上只在整个屏幕上有一个Web浏览器.
我遇到的问题是,如果用户(在网页上)点击"文件上传/文件选择器",首先我看到:
传入类型public.item不符合public.content或public.data.如果要导出新类型,请确保它符合适当的父类型.未定义UICollectionViewFlowLayout的行为,因为项目宽度必须小于UICollectionView的宽度减去部分插入左右值,减去内容插入左右值.
相关的UICollectionViewFlowLayout实例是<_UIAlertControllerCollectionViewFlowLayout:0x12e30f270>,它附加到; 动画= {bounds.origin =; bounds.size =; 位置=; }; layer =; contentOffset:{0,0}; contentSize:{0,0}>集合视图布局:<_ UIAlertControllerCollectionViewFlowLayout:0x12e30f270>.
然后,如果用户从iOS选项列表中选择"拍摄照片或视频"或"照片库",我会得到:
警告:尝试在My.WebViewController上显示UIImagePickerController:0x12d192200:0x12e2883e0,其视图不在窗口层次结构中!
结果是:
有没有人有什么建议?我试图提供相关代码,但如果需要我可以粘贴更多代码.谢谢.
- 更新-------- …
我试图将视图控制器B从A推入导航控制器,然后在A中分配B的一些属性.
在这种情况下,完成属性的分配,然后执行viewcontroller A的viewDidLoad.
在这里,只有在A的viewDidLoad完成后才能在A中分配属性.
例如,
[b.navController pushViewController:a animated:YES];
a.status = @"loaded";
Run Code Online (Sandbox Code Playgroud)
在这里,首先分配状态,然后viewDidLoad执行A.这仅在iOS 7中发生,而在iOS6中它可以正常工作.
谁能告诉我问题在哪里?
更新:对于我在某些情况下在iOS7中,推送视图不起作用.我如何调试和修复它?