2016-03-29 5 views
0

UiViewController内のすべてのサブビューをプログラムによって作成しました。 デバイスは私がのviewDidLoad(内部ベローズ行を書き込むように、問題は、回転方法が複数回呼び出されることである)方向変更時にサブビューをプログラムで再描画

NSNotificationCenter.defaultCenter().addObserver(self, selector: "rotated", name: UIDeviceOrientationDidChangeNotification, object: nil) 

のUIViewControllerの全体のレイアウトを再現したい回転します。

これはどうしてですか?

また、UiViewControllerのレイアウト全体をプログラムによって再現する適切な方法は何ですか?ドキュメントから

+0

通知オブザーバviewDidloadまたはViewwillapprarを追加/登録しましたか? viewwillappearまたはviewdidappearで追加した場合、viewwilldisappearまたはviewdidDisAppearで同じものを削除する必要があります。 –

+0

in viewDidload() –

+0

私はそれを行っています.. –

答えて

0

:期間:, willAnimateRotationToInterfaceOrientation:持続時間:とdidRotateFromInterfaceOrientation:

回転が見えるビューコントローラ、willRotateToInterfaceOrientationに対して発生方法は、回転中に呼び出されます。 viewWillLayoutSubviewsメソッドは、ビューがサイズ変更され、その親によって配置された後にも呼び出されます。向きの変更が発生したときにビューコントローラが表示されない場合、回転メソッドは呼び出されません。ただし、ビューが可視になると、viewWillLayoutSubviewsメソッドが呼び出されます。このメソッドの実装では、statusBarOrientationメソッドを呼び出してデバイスの方向を判断できます。

"didRotateFromInterfaceOrientation:"メソッドで行います。

関連する問題