我想要做的是一個帶有圖像的導航欄。我在我的主視圖上有一個選項卡控制器,並且在每個選項卡內有一個UINavigationController。從我的標籤/ navigationController調用的UIViewController裏面,我可以設置於titleview沒有太多問題,這樣viewDidLoad方法中:覆蓋UINavigationBar以設置默認標題查看
self.navigationItem.titleView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"mylogo.png"]] autorelease];
但是,我想,以取代所有冠軍,在我的導航欄的這一觀點,並在任何地方重複這一點似乎都很難。所以我對代表做了這個(鏈接所有Outlet的東西后)
self.tabOneNavController.navigationBar.topItem.titleView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"mylogo.png"]] autorelease];
再次,它的工作!好的,我快到了。 但重點是,我有5個選項卡,他們都有navigationControllers裏面。我將每個內部視圖的代碼重複次數減少到僅5次,但仍然如此。它要求我爲每個選項卡的NavController執行此操作。
然後我試圖擴展UINavigationBar來創建我自己的,我可以在初始化程序中設置它,並在界面生成器中將它用作對象類。但它似乎並不奏效。這裏是我做的:
@implementation MyNavigationBar
- (id)init {
self = [super self];
self.tintColor = [UIColor greenColor];
self.topItem.title = @"testing please work";
return self;
}
@end
在接口文件MyNavigationBar繼承自UINavigationBar。但是這不起作用。我應該改寫其他方法嗎?哪一個?這是一個很好的做法嗎? 我甚至不確定是否應該爲每個選項卡添加一個導航欄,正如我所說的,我有選項卡,並且我想要在其中導航欄/導航。到目前爲止,在嘗試瞭解接口構建器/插座和類是如何工作的近乎死亡的經驗之後,代碼正在工作,我只想使其不起作用。
謝謝!
這工作就像一個魅力,謝謝你!只是一個問題,我在界面生成器中聲明瞭屬於我的類別接口「@property(nonatomic,retain)IBOutlet UIImageView * barTitle;'的屬性,我將它鏈接到了我在那裏的imageview。然後我試着從實現drawRec裏面設置titleView。但它會在應用程序啓動後立即拋出一個錯誤,因爲出口鏈接。無論如何要做到這一點?我只是好奇。我嘗試添加@synthesize,但它表示在一個類別中不可能。 – Tiago
對,類別不是子類。您只能添加方法。你不能添加屬性。 – Moshe
我在想如何做到這一點。甜 – vinylDeveloper