ではありません。UIImagePickerController&ビューは、私は、単純なスウィフトプロジェクトを持っているウィンドウ階層
のViewController Bはここで、基本的にちょうどWKWebViewありますそのviewDidLoad()
:のViewController Bが提示されたときに
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
だから、私は基本的には画面全体でWebブラウザを持っています。
私はに実行している問題は、(Webページの中に)ユーザーがクリックすると、「ファイルのアップロード/ピッカーファイル」、ということで、最初に私がこの参照:型公共の場で合格
を。アイテムがpublic.contentまたは public.dataに準拠していません。新しいタイプをエクスポートする場合は、 が適切な親タイプに準拠していることを確認してください。 UICollectionViewFlowLayoutの動作は定義されていません。アイテムの幅が で、UICollectionViewの幅からセクション の左右の値を差し引いて、コンテンツの左右差を差し引いた値よりも小さくする必要があるからです。 値。
関連UICollectionViewFlowLayoutインスタンスが < _UIAlertControllerCollectionViewFlowLayoutある:0x12e30f270>、それが に取り付けられています。 アニメーション= {bounds.origin =; bounds.size =; 位置=; };層=; contentOffset:{0、0}; contentSize:{0、0}>コレクション ビューのレイアウト:< _UIAlertControllerCollectionViewFlowLayout: 0x12e30f270>。
その後、ユーザーはiOSのオプションリストから、または「フォトライブラリ」「写真やビデオを撮る」を選択した場合、私はこれを取得:
警告:UIImagePickerControllerを提示しようとしています。 私の0x12d192200 .WebViewController:ビューがウィンドウ内にない0x12e2883e0 階層!
- フォトライブラリピッカー//カメラアプリは表示されません:
結果はということです。
誰にも提案はありますか?関連するコードを提供しようとしましたが、必要に応じてさらに貼り付けることができます。ありがとうございました。
- UPDATE --------
わかりましたので、より多くの研究の後、起こって二つの別々のもの、実際にあります。
は、最初のエラーは、関数であります「ファイル・ピッカー」がモバイル・ブラウザによってどのように処理されるかを示します。 See here ...物事の壮大な計画ではなく、大したことではありません。
第2のエラー
Attempt to present UIImagePickerController...
- 2つの弱体化するほど醜いです。
WKWebViewとのViewControllerは、その後、(ライブラリまたはカメラから)画像を「選択」しようとするユーザーにより、iOSのはUIImagePicker を提示しようとします別のViewControllerから提示された場合 WKWebView ViewControllerから、あなたが望むものです。
残念ながら、私がまだわからない理由で、画像を「選択」しようとするユーザの行為によって、iOSは提示されたビューコントローラを却下します...この場合、あなたのWKWebViewコントローラ:(したがって、WKWebView ViewControllerは終了するので、UIImagePickerを表示しようとするとウインドウ階層にはありません - したがって、エラー。
私の解決策はかなりハッキーですが、特定の使用の場合)、次のようである。私はこれが誰かの役に立てば幸い:
- はWKWebViewのViewController(のViewControllerをインスタンス化
- VC A
を閉じB)
viewDidLoad(){}
機能にint型をしている場合は let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyboard.instantiateViewControllerWithIdentifier("Browser") as! WebViewController
UIApplication.sharedApplication().keyWindow?.rootViewController = vc
self.presentViewController(vc, animated: false, completion: {() -> Void in
self.dismissViewControllerAnimated(false, completion: nil)
})
私は今のところ同じ状況です。最初の問題に関して:それはシミュレータにのみ現れますが、実際のデバイスには現れません。 2番目の問題は、https://stackoverflow.com/questions/37380333 – Jurasic