爲史蒂夫(檢測RootViewControll的PoPView或SPLITVIEW的導航欄)[SPLITVIEW IPAD]
宥必須創建一個類的方法(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 =...
}
}
..this在我的應用效果很好,編輯自定義的橫向/縱向的導航欄
謝謝,工作!在viewWillAppear - self.navigationController.navigationBar.barStyle = UIBarStyleBlackOpaque; – Justin 2010-04-15 03:02:15
請記住,在viewWillUnload或dealloc中,記得將IBOutlets設置爲零,以便在OS/Nav/Tabbar Controller決定卸載該視圖時啓用資源回收。沒有這一步,你就有可能在後期發生奇怪的內存泄漏。 – Jann 2010-04-15 04:11:40
+1 Jann,人們總是忘記這一點。 – 2010-04-15 14:15:54