我正在使用addChildViewController和addSubview将视图控制器添加到现有的视图控制器中。问题是,当设备旋转时,后视图控制器会短暂可见。我正在使用通知来检测旋转并替换呈现的视图控制器(横向和纵向在故事板中的不同场景上)
- (void) changeTheViewToPortrait:(BOOL)portrait andDuration:(NSTimeInterval)duration{
if(portrait){
self.landscapeViewiPad.hidden = YES;
self.portraitViewiPad.hidden = NO;
}else{
self.landscapeViewiPad.hidden = NO;
self.portraitViewiPad.hidden = YES;
}
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:duration];
[UIView commitAnimations];
}
我注意到这个问题只出现在iOs8上。有人知道该怎么做才能解决这个问题吗。
如果这只是一个UI问题,你可能会推迟一点隐藏原始视图:
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, NSEC_PER_USEC), dispatch_get_main_queue(),
^{
self.landscapeViewiPad.hidden = NO;
});
NSEC_PER_USEC
是1/1000s,可能太短了,你可能需要自己尝试适合你的方法。
如果你回复"这是一个黑客",我会同意:)