2011-05-18 64 views
6

我想隱藏右側的ViewNavigationBarItem,當我的ViewController加載時。這怎麼可能?我試過這段代碼,但它不工作。隱藏iPhone中的rightNavigationBar按鈕項

self.navigationItem.rightBarButtonItem = nil; 
+0

你在做什麼? – 2011-05-18 07:54:15

+0

你在哪裏設置'rightBarButtonItem'?可能它會在時間顯示中再次添加。 – 2011-05-18 08:15:37

+0

實際上,我創建了一個繼承自uitabbarcontroller.in的類的tabbar類本身,我已經添加了正確的bar按鈕item.but我已經爲只有一個類設置了rightbarbutton,但是當我運行我的程序時,rightbarbutton被設置爲all其他類以及。謝謝 – Rani 2011-05-18 08:20:43

回答

6

在Xcode中4使用這些將無法正常工作;

self.navigationItem.leftBarButtonItem.enabled=NO; 
self.navigationItem.leftBarButtonItem=nil; 
self.navigationController.navigationBar.backItem.hidesBackButton=YES; 
[self.navigationItem.leftBarButtonItem release]; 

我真的很感興趣,爲什麼你提到rightBarButtonItem?當你瀏覽時,它的leftBarButtonItem發生變化。

什麼是工作;

1)self.title [email protected]""; null導航屏幕的標題,當導航控制器將詳細視圖壓入堆棧時,不會創建後退按鈕。

2)用其他東西替換leftBarButtonItem更改按鈕,但不能解決您的問題。

3)另一種方法。隱藏導航欄; [self.navigationController setNavigationBarHidden:YES animated:YES];

+1

我懷疑行爲是否取決於Xcode版本。 – 2011-05-18 08:52:09

+0

@eSpecialized:這是不正確的。此外,他確實詢問了正確的按鈕,並假設他不知道他想隱藏哪個按鈕......是很奇怪的。 – 2011-08-11 12:48:38

+0

@HenrikErlandsson - 因爲當一個視圖控制器加載。沒有左右按鈕,除非它是導航堆棧的一部分。這個問題表明他有左鍵的問題。應該詢問對原始問題的編輯。我將這個問題作爲導航堆棧推進來讀取,這意味着左鍵。 – 2013-06-10 16:14:57

1

在將控制器插入導航堆棧之前,您應該將rightBarButtonItem設置爲nil。

5

喜不隱藏,而是讓它禁用

self.navigationItem.rightBarButtonItem.enabled = NO; 
2

把這個功能在所有類別中 -

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) { 
    self.navigationItem.rightBarButtonItem = nil; 
    } return self; 
} 
2

首先,您不應該在documentation中明確指出UITabBarController的子類。它在概述中提到很早。

假設其中一個選項卡指向UINavigationController。您應該直接訪問視圖控制器並執行諸如viewController.navigationItem.rightBarButtonItem = nil;之類的操作。

1

直接隱藏右鍵不起作用 下面是這樣做的伎倆。

注意:此解決方案僅適用於iOS 7.x。

//To Hide 
self.navigationItem.rightBarButtonItem.enabled = NO; 
self.navigationItem.rightBarButtonItem.title = @""; 

//To Show 
self.navigationItem.rightBarButtonItem.enabled = YES; 
self.navigationItem.rightBarButtonItem.title = @"DONE";