для Стива (обнаружение панели навигации PoPView или splitView RootViewControll) [IPAD splitview]
Вы должны создать метод класса (setLand: int i) в RootViewController, вызываемый из detailviewcontroller, в следующих методах:
- (void)splitViewController: (UISplitViewController*)svc willShowViewController:(UIViewController *)aViewController invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem {
// LANDSCAPE !!!!
[RootViewController setLand:1];
и
- (void)splitViewController: (UISplitViewController*)svc willHideViewController:(UIViewController *)aViewController withBarButtonItem:(UIBarButtonItem*)barButtonItem forPopoverController: (UIPopoverController*)pc {
// PORTRAIT!!
[RootViewController setLand:0];
и на RootViewController:
static int landscape=2;
...
// SetMethod for class variable landscape
+ (void)setLand:(int)i
{
if(landscape!=i){
landscape = i;
}
}
и, наконец, всегда в RootViewController
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
if(landscape == 1)
{
//LANDSCAPE!
CUSTOM FOR LANDSCAPE
self.navigationController.navigationBar.barStyle =...
}
else if(landscape == 0)
{
//PORTRAIT!
CUSTOM FOR PORTRAIT
self.navigationController.navigationBar.barStyle =...
}
}
.. это хорошо работает в моем приложении, редактируя пользовательский альбомный / книжный навигационный бар