問題タブ [uitraitcollection]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - Size クラスを使用した UIViewController の選択的な自動回転
カスタム動作が必要な場合、新しいサイズ クラス ベースの Autorotation は面倒です。私の要件とフローは次のとおりです。
- ビュー コントローラー 1 (VC1) は、ビュー コントローラー 2 (VC2) をモーダルに表示します。
VC1 は、ユーザー設定 (経由で達成) に応じて、横向き、縦向き、またはその両方のみをサポートします
supportedInterfaceOrientations
。この例では、横向きにロックされていると想定しています。VC 2 は横向きと縦向きの両方をサポート
私は Size クラスを使用し、View Controller 1 ではstatusBarOrientation
、viewWillTransition
(サイズに ...) をチェックして、インターフェイス要素の配置とその他のカスタマイズを構成します。
これは、VC 2 が提示され、デバイスが回転している場合を除き、機能します。VC 2 が破棄されると、VC 1 はすべて台無しになります。確かに、View Controller 1 が表示されたらレイアウトを更新したいと思います。それ、どうやったら出来るの?UIViewController.attemptRotationToDeviceOrientation() を試しましたが、自動回転メソッドを強制的に再度呼び出すことはありません。
編集: ご覧のとおり、VC1 では statusBarOrientation をチェックして、インターフェイスの向きを決定します。VC2 が縦向きモードに回転すると、statusBarOrientation が縦向きに変更されるため、これは問題を引き起こします。そして、サイズへのviewWillTransitionがVC1で同時に呼び出され、レイアウトを縦向きモードに強制します。