iOS 8旋转显示后视图



我正在使用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,可能太短了,你可能需要自己尝试适合你的方法。

如果你回复"这是一个黑客",我会同意:)

最新更新