Question

I have encountered some seriously odd situation.

I have a code looking like this:

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

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

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

with the view controller looking like this: OK state

Strangely enough, when I ONLY ADD

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

even WITHOUT any action inside, it totally messes up with the layout of the view controller and makes it look like this: KO state

I have not added any other line of code then just empty header for viewDidAppear. When deleted, the layout is OK. What the heck is happening here?

Was it helpful?

Solution

Your view will change size after viewDidLoad with regard to the status bar and navigation bar (if you have them). If you don't call [super viewDidAppear:animated];, your subviews may not be repositioned properly.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top