0

我試圖給我的UIToolBar一個標題,但是當我嘗試添加一個具有標題屬性的UIBarItem時,出現此錯誤。我的代碼:[UIBarItem setTitle:]:發送到實例的無法識別的選擇器

UIBarItem *title = [[UIBarItem alloc] init]; 
title.title = @"My Title"; 

[toolBar setItems:@[cancel, title, ok]]; 

我已經檢查UIBarItem官方文檔,它確實有一個完全有效的「title」屬性。我在這裏做錯了什麼?

+0

我不確定,試試把變量名改爲別的。 – 2013-04-03 18:54:20

回答

3

我認爲問題是,UIBarItem抽象超的UIBarButtonItemUITabBarItem

也許該方法只是在頭文件中聲明並且未實現,或者抽象實現調用-doesNotRecognizeSelector:

UIBarItem是一個抽象超類,用於添加到出現在屏幕底部的橫條的項目。 ...

對於-[UIToolbar items] UINavigationBar -[UINavigationItem (left|right)BarButtonItems],你必須使用使用UIBarButtonItem

+0

對於任何使用UINavigationBar的人來說,它確實不喜歡UIBarButtonItem(無法識別的選擇器)。所以請嘗試一個UINavigationItem。 – zakdances 2013-04-03 20:41:42

+0

@yourfriendzak你是對的,這是不明確的。 – Tricertops 2013-04-04 09:05:56

-1

我相信你應該使用initWithTabBarSystemItem:tag:initWithTitle:image:tag:來初始化你的UIBarItem。

+0

不是。[官方文檔說的相反。](http://developer.apple.com/library/ios/documentation/uikit/reference/UIBarItem_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40007520 -CH3-SW20) – 2013-04-03 18:56:40

+0

對不起,我在看UITabBarItem。 UIBarItem被記錄爲抽象超類。 – 2013-04-03 18:59:57

+0

沒問題,這是一個可以理解的錯誤:) – 2013-04-03 19:00:34

0

我得到了同樣的錯誤,請嘗試使對象成爲一個按鈕而不是一個項目。此代碼工作得很好,我

UIBarButtonItem *title = [[UIBarButtonItem alloc] init]; 
[title setTitle:@"My Title"]; 

如果你想給工具欄標題,讓一個UILabel的標題,並將其添加作爲一個子視圖。

+0

這兩個調用是完全等效的。 – 2013-04-03 18:59:16

+0

我和他的區別在於他是'UIBarItem',我的是'UIBarButtonItem'。我試了一下,他的代碼沒有工作,當我測試它的時候它工作。 – 2013-04-03 19:00:23

+0

但是OP想要一個普通的'UIBarItem',不是嗎? – 2013-04-03 19:02:19

0

Apple's documentation

標題

標題上顯示的項目。

@property(nonatomic, copy) NSString *title 

討論:您應該在將項目添加到 欄之前設置此屬性。默認值是零。

可用性:Available in iOS 2.0及更高版本。

所以這個標題確實可以設置。你確定它是UIBarItem類作爲錯誤信息的一部分顯示嗎?可能是內存管理問題,或者如果不是,則可能是UIKit (極不可能)的錯誤

相關問題