デバイスを回転させるときにのみ必要になるため、プログラムで実装する UIButton があります。
回転するとボタンが消え、横向きになるとボタンが表示される必要があります。
同じ ViewController にとどまっている限り、問題はありません。とにかくデバイスを回転させることができ、ボタンは期待どおりに表示および非表示になります。アプリは TabController ベースのアプリであり、別のタブに移動すると同じ動作が発生します。
これが問題
です 元のビューに戻ると、ボタンが表示されますが、消えません。が呼び出されていないのとほぼ同じremoveFromSuperView
ですが、呼び出されてもボタンは削除されません。
これはなぜですか?
-(void)autoRotationDetection
{
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
[[NSNotificationCenter defaultCenter]
addObserver:self selector:@selector(orientationChanged:)
name:UIDeviceOrientationDidChangeNotification
object:[UIDevice currentDevice]];
}
- (void) orientationChanged:(NSNotification *)note
{
UIDevice * device = note.object;
switch(device.orientation)
{
case UIDeviceOrientationPortrait:
/* start special animation */
[_menuButton removeFromSuperview];
break;
case UIDeviceOrientationPortraitUpsideDown:
/* start special animation */
break;
default:
break;
};
}
それから私は電話します
-(void)viewWillAppear:(BOOL)animated
{
[self autoRotationDetection];
}
申し訳ありませんが、それを追加する必要があります。