2008-12-05 146 views
10

我想放置在導航欄中央的UIButton。基於該文件,看來我需要設置標題視圖,並確保leftBarButtonItem爲零。但這對我沒有用。這是代碼。爲什麼navigationItem.titleView不工作?

UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
[btn setTitle:@"List" forState:UIControlStateNormal]; 
self.navigationItem.leftBarButtonItem = nil; 
[self.navigationItem.titleView addSubview:btn]; 

回答

26

如果您檢查您的按鈕,你會發現,使用便捷的方法來初始化它你留下了所內的定位在0,0爲0x0的按鈕它被添加到的視圖邊界。在執行此操作之前,您必須定義按鈕的frame屬性的內容。請參見下面的代碼:

UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
btn.frame = CGRectMake(0, 0, 400, kCustomButtonHeight); 
[btn setTitle:@"list" forState:UIControlStateNormal]; 
self.navigationItem.titleView = btn; 
+0

它的工作原理,謝謝! – BlueDolphin 2008-12-06 23:24:01

7

navigationItem的視圖默認設置爲nil。

您需要使用

self.navigationItem.titleView = btn; 
4

在我來說,我試圖將其設置在子視圖控制器,這個固定

self.parentViewController.navigationItem.titleView = titleView;