2017-09-23 8 views
5

HTML選択要素を使用すると、はネイティブのUIPopoverControllerをiPad上でドロップダウンリストとして表示します(iPhoneはUIPickerViewがうまくいきます)。 iOS11でiOS 11 UIWebViewドロップダウンメニューが完全に壊れてしまった - UIPopoverController

これは完全に壊れているように見える:閉じてすぐに再提示されているポップオーバーでオプション結果を選択せず​​に却下する外部のドロップダウンをクリック

  • 、時折空
  • すると、複数のドロップダウンページ上でドロップダウンすると、前のリストの要素が含まれます
  • 2番目のドロップダウンを選択すると、最初に再オープンします
  • ときどきドロップダウンが左上隅に表示される(おそらくソースビューが失われている)
  • 上記の手順は非常に時折、次のクラッシュにつながる:

2017年9月23日09:43:13.190728 + 0100のWeb [1779:86622]アプリ の終了*キャッチされない例外により「NSInternalInconsistencyExceptionへ'、理由: ' UITableViewデータソースが設定されていません ' *ファーストスローコールスタック:0 CoreFoundation 0x000000010d4a01cb exceptionPreprocess + 171 1 libobjc.A。dylib
0x000000010c8bbf41 objc_exception_throw + 48 2 CoreFoundationの
0x000000010d4a5362 + [NSExceptionレイズ:フォーマット:引数:] + 98 3
ファンデーション0x000000010c360089 - [NSAssertionHandler handleFailureInMethod:目的:ファイル:行番号:説明:] + 193 4
のUIKit 0x000000010da742f5 - [のUITableView _createPreparedCellForGlobalRow:withIndexPath:willDisplay:] + 1756年5のUIKit 0x000000010da7451a - [のUITableView _createPreparedCellForRowAtIndexPath:willDisplay:] + 81 6のUIKit 0x000000010da82137 - [のUITableView _heightForRowAtIndexPath:] + 208 7
のUIKit 0x000000010dd2b939 - [UISectionRowData heightForRow:inSection:canGuess:] + 259 8のUIKit 0x000000010dd31c1a - [UITableViewRowData heightForRow:inSection:canGuess:adjustForReorderedRow:] + 277 9
のUIKit 0x000000010dd36230 - [UITableViewRowData ensureHeightsFaultedInForScrollToIndexPath:withScrollPosition:boundsHeight:] + 964 10のUIKit 0x000000010da51110 - [のUITableView _contentOffsetForScrollingToRowAtIndexPath:atScrollPosition:usingPresentationValues:] + 2783 11のUIKit 0x000000010da51b8f - [のUITableView _scrollToRowAtIndexPath:atScrollPosition:アニメーション:usingPresentationValues:] + 146 12のUIKit 0x000000010da51a11 - [のUITableView scrollToRowAtIndexPath:atScrollPosition:アニメーション:] + 123 13 UIKit 0x000000010de72d11 - [UIWebSelectTableViewController viewWillAppear:] + 247 14のUIKit 0x000000010dabe9b0 - [のUIViewController _setViewAppearState:isAnimating:] + 444 15のUIKit 0x000000010dabf245 - [のUIViewController __viewWillAppear:] + 147 16 のUIKit 0x000000010da8b881 __56- [UIPresentationController runTransitionForCurrentState] _block_invoke + 1088年17のUIKit
0x000000010d926c61 _runAfterCACommitDeferredBlocks + 318 18のUIKit
0x000000010d91530d _cleanUpAfterCAFlushAndRunDeferredBlocks + 280 19 のUIKit 0x000000010d945600 _afterCACommitHandler + 137 20 CoreFoundationの0x000000010d442db7 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION
+ 23 21 CoreFoundationの0x000000010d442d0e __CFRunLoopDoObservers + 430 22 CoreFoundationの0x000000010d427324 __CFRunLoopRun + 1572年23 CoreFoundationの
0x000000010d426a89 CFRunLoopRunSpecific + 409 24 GraphicsServices
0x00000001124c89c6 GSEventRunModal + 62 25のUIKit
0x000000010d91ad30 UIApplicationMain + 159 26ウェブ27 111 +
0x000000010bfb014f主libdyld。 dylib
0x0000000110df1d81 start + 1 28 ???

https://github.com/AshRobinson/BrokenUIWebView

http://gph.is/2xmHFWs

は誰もがそのような問題の回避策を持っています:
0x0000000000000001は0x0 + 1 '

は、私は問題を示すコードの1行でサンプルアプリケーションを作成しました? WKWebviewへの移行は、この段階では選択肢ではありません。

iPadが一時的にドロップダウンにUIPickerViewを使用するように強制する方法はありますか?

私は例えば、運で他のスタックオーバーフローの記事での提案を検討している:私たちは同じバグに遭遇した

ios 11 Beta 5 select drop-down list issue

+1

同じ問題があります。解決策はまだありません。 –

答えて

1

Apple's documentationは、iOS 8以上のアプリはWKWebViewを使用する必要があると言います。 WKWebViewに切り替えると、私たちはこの問題をもう見ていません。

+1

私はまだWKWebViewのアップグレードでも同じ問題を抱えています – dmorrow

+0

@dmorrow私の非常に簡単な[要点](https://gist.github.com/egrudolph/842df35faa7cc10b054b1b5b6e920f5f) –

0

UIWindowに直接追加されていたWKWebViewを使用してこの問題が発生しました。ウィンドウに直接myWkWebviewを追加するのではなく、

containerVC = [[UIViewController alloc] init]; 
[containerVC.view addSubview:myWkWebview]; 
[window addSubview:containerVC.view]; 

:私の問題は、次の行は、トリックをしたので、ビューは、それにリンクされているのUIViewControllerを持っていなかったということでした。これでモーダルビューが再び追加されました:-)

関連する問題