viewDidAppear存在于代码混乱布局中

Mic*_*hal 0 layout objective-c viewdidappear ios

我遇到了一些严重的奇怪情况.

我有一个代码如下:

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    return self;
}

- (void)viewDidLoad {
    [super viewDidLoad];
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning]; 
}
Run Code Online (Sandbox Code Playgroud)

视图控制器看起来像这样: 好的状态

奇怪的是,当我只是添加

- (void)viewDidAppear:(BOOL)animated {
}
Run Code Online (Sandbox Code Playgroud)

即使没有内部的任何动作,它完全混淆视图控制器的布局,使它看起来像这样: KO州

我没有添加任何其他代码行,然后只为viewDidAppear清空标题.删除后,布局正常.到底发生了什么事?

小智 6

在viewDidLoad之后,您的视图将根据状态栏和导航栏(如果您有)更改大小.如果您不打电话[super viewDidAppear:animated];,您的子视图可能无法正确重新定位.