UINavigationController 的子视图中调用的旋转方法?

Posted

技术标签:

【中文标题】UINavigationController 的子视图中调用的旋转方法?【英文标题】:Rotation method called in child view of UINavigationController? 【发布时间】:2013-01-12 18:00:47 【问题描述】:

我在导航控制器中嵌入了一个视图层次结构。当视图旋转时,子视图控制器中会调用哪些方法?这段代码在导航控制器的一个子视图中,这些方法都没有被调用!

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
    NSLog(@"1");
    if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
        return true;
    else
        if(toInterfaceOrientation == UIInterfaceOrientationPortrait)
            return YES;
        
    

    return false;



-(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
    [self loadCorrectElements];
    NSLog(@"2");

谢谢!

【问题讨论】:

【参考方案1】:

你应该得到两个

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation 
                                duration:(NSTimeInterval)duration

所以您的设置有其他问题。

要清楚,正如你提到的“子视图” - 你的意思是最顶层的 UIViewController?那就是在轮换期间拦截这些消息的那个。

【讨论】:

以上是关于UINavigationController 的子视图中调用的旋转方法?的主要内容,如果未能解决你的问题,请参考以下文章

UINavigationController

如何扩展 UIView 过去包含 UINavigationController

UINavigationController 不会推送其他视图控制器?

包含 UINavigationController 的状态栏大小不正确

UINavigationController 不使用自动布局 iOS 8 更新大小

重复调用 UINavigationController 的 push 导致访问错误