viewDidAppear存在于代码混乱布局中

时间:2013-08-30 15:45:33

标签: ios objective-c layout viewdidappear

我遇到了一些非常奇怪的情况。

我有一个代码如下:

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

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

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

视图控制器看起来像这样: OK state

奇怪的是,当我仅添加

- (void)viewDidAppear:(BOOL)animated {
}

甚至没有里面的任何动作,它完全混淆了视图控制器的布局,使它看起来像这样: KO state

我没有添加任何其他代码行,然后只为viewDidAppear清空标题。删除后,布局就可以了。这里到底发生了什么?

1 个答案:

答案 0 :(得分:6)

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