我有一个以编程方式实现的 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];
}
抱歉应该补充一下。