0

我想在UINavigationBar的位置leftBarButtonItem/rightBarButtonItem上設置文本。您必須使用UIBarButtonItem,但您可以將不同的UIView對象放入其中。首先,我嘗試使用標籤,但這不起作用。代碼是用C#編寫的,但你應該明白:導航欄中的自定義文本

UILabel textLabel = new UILabel(); 
textLabel.Text = "My custom text which should be displayed in navigation bar"; 
UIBarButtonItem customBarButtonItem = new UIBarButtonItem (textLabel); 
NavigationItem.RightBarButtonItem = customBarButtonItem; 

該標籤不顯示。如果我使用的按鈕似乎工作(除了樣式必須適應)。

UIBarButtonItem customBarButtonItem = new UIBarButtonItem ("My custom text which should be displayed in navigation bar", UIBarButtonItemStyle.Plain,null); 
NavigationItem.RightBarButtonItem = customBarButtonItem; 

爲什麼不可以使用UILabel?在UIBarButtonItem中顯示文本的正確方式是什麼?

編輯:

我目前的研究結果是:

任一組的UIBarButtonItem標題或設置UILabel(感謝Anbu.Karthik此)的框架上。

+0

您更好地展現真正的代碼,並堅持命名約定。這是相當猜測的工作。 –

+0

@HermannKlecker:我編輯了我的問題以獲得更多有意義的佔位符。該代碼是我想以後使用的。只有內容會改變。 – testing

回答

1

變化

UILabel testLabel = new UILabel(); 
testLabel.frame=CGRectMake(0, 0, 200, 21); 

testLabel.Text = "yuhu"; 
UIBarButtonItem test = new UIBarButtonItem (testLabel.text); 
+1

否則檢查標籤框架是否有必要 –

+0

我看到的唯一構造函數是我在我的問題中使用的構造函數(您需要更多參數)。首先,我試圖使用自動佈局,導致崩潰,因爲他不知道父母。現在我嘗試設置框架並將標籤顯示出來!同樣的事情如何與自動佈局一起工作?我必須在哪裏添加約束條件? UINavigationController的'View'? – testing

+0

如果您在視圖中使用的標籤,直接,那麼你可以對自動佈局的事情,但UIBarbutton不以任何鏈層次underwith,所以在這裏只需要移動/標籤分配文字欄按鈕文本,所以標籤幀這裏很好 –

1

更改這行代碼UIBarButtonItem test = new UIBarButtonItem (testLabel);

UILabel testLabel = new UILabel(); 
testLabel.Text = "yuhu"; 
testLabel.frame=CGRectMake(x, y, width, height); 
//change this line 

UIBarButtonItem *barBtn = [[UIBarButtonItem alloc] initWithCustomView:testLabel]; 
NavigationItem.RightBarButtonItem = test; 
+0

如果我翻譯成C#的世界,這是完全一樣的線'的UIBarButtonItem測試=新的UIBarButtonItem(testLabel);'如果* BTN *爲* testLabel *。或者你的意思是'UIButton'? – testing

+0

我只想顯示文字。第一個想法是使用'UILabel',但是這對我沒有用。 – testing

+0

但標籤不會給予任何意義欄按鈕,因爲它不會有任何action.areü計劃增加挖掘姿態的UILabel – Mukesh

0

使用此

UIImage *buttonImage = [UIImage imageNamed:@"back.png"]; 
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 
[button setImage:buttonImage forState:UIControlStateNormal]; 
button.frame = CGRectMake(0, 0, buttonImage.size.width, buttonImage.size.height); 
[button addTarget:self action:@selector(back) forControlEvents:UIControlEventTouchUpInside]; 

UIBarButtonItem *customBarItem = [[UIBarButtonItem alloc] initWithCustomView:button]; 
self.navigationItem.leftBarButtonItem = customBarItem;