私は、ユーザーが自分のiPhoneを縦向きと横向きに動かしたかどうかに応じて、ボタンのレイアウトを変更するアプリを作っています。私は自分のコードを配置するのに最適な場所はiphone向きを検出する最良の方法
-(BOOL) shouldautorotatetointerfaceorientation
になりますと思った。しかし、少なくとも3回呼ばれるページがshouldautorotatetointerfaceorientationにロードされる
との2つの大きな問題があります。コードを一度しか実行しません。
モーダルsegueでviewController1(page1)からviewController2(page2)に移動しても、私のviewcontroller1にあるautorateコードを呼び出しているページ2に私のiPhoneを回転させます。それは非常に奇妙です。
とにかく私のオリエンテーションベースのアイコンを置くのに最適な場所は何ですか?
...またはあなたがそのメソッド内に置く任意のコードは(該当する場合)もアニメーション化されますので、しばしば非常に有用である 'willAnimateRotationToInterfaceOrientation'、など非常に簡単に現在の向きを取得します。 – lxt
私はちょうどこれを知って、実用的に私は[[NSNotificationCenter defaultCenter] addObserver:self セレクタを追加する必要があります:@セレクタ(didRotate :) 名前:@ "UIDeviceOrientationDidChangeNotification"オブジェクト:なし]; didRotate関数とdidRotateと一緒にユーザーがデバイスをポートレートモードまたはランドスケープモードで移動したかどうかを確認します。 –
@SamBudda上記のメソッドのデフォルトを登録する必要はありません。しかし、デバイスの向きの変更に対してトリガされるカスタムメソッド 'didRotate'が必要な場合は、あなたが言及した通知を追加する必要があります。 – PengOne