对于史蒂夫(检测 RootViewControll 的 PoPView 或 splitView 导航栏)[splitview IPAD]
Yuo 必须在这些方法中从 detailviewcontroller 调用的 RootViewController 上创建一个类方法 (setLand:int i):
- (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 =...
}
}
..这在我的应用程序中运行良好,编辑自定义横向/纵向导航栏