navigationBar
親View Controllerに表示しています:
- (void)viewWillDisappear:(BOOL)animated
{
[self.navigationController setNavigationBarHidden:NO animated:YES];
[super viewWillDisappear:animated];
}
次に、次のView Controllerで
- (void)viewDidLoad
{
/* ... */
NSLog(@"%i, %g", self.navigationController.navigationBarHidden,
self.view.frame.size.height);
}
- (void)viewWillAppear:(BOOL)animated
{
/* ... */
[super viewWillAppear:animated];
NSLog(@"%i, %g", self.navigationController.navigationBarHidden,
self.view.frame.size.height);
}
- (void)viewWillLayoutSubviews
{
NSLog(@"%i, %g", self.navigationController.navigationBarHidden,
self.view.frame.size.height);
}
- (void)viewDidAppear:(BOOL)animated
{
NSLog(@"%i, %g", self.navigationController.navigationBarHidden,
self.view.frame.size.height);
}
出力:
-[viewDidLoad]: 1, 416
-[viewWillAppear:]: 0, 460
-[viewWillLayoutSubviews]: 0, 416
-[viewDidAppear:]: 0, 416
ご覧のとおり、viewWillAppear
間違っていself.view.frame.size.height
ます。使ってもいいのですviewWillLayoutSubviews
が、iOS5で導入されました。viewWillAppear で適切なフレームの高さを取得することは可能ですか?