2010-10-22 36 views
0

這可能是我被一點點朦朧的,我通過一個UINavigationController建立一個UITableViewController,我子類的UITableViewController:(見下文),並已經實現了數據源的方法來獲取我的桌子和運行UITableViewController子類化你得到了什麼?

@interface RootViewController : UITableViewController { 
    NSArray *dataList; 
} 
@property(nonatomic, retain) NSArray *dataList; 
@end 

我的問題是:當我開始實現viewDidLoad for RootViewController時,我想爲表設置標題(請參見下圖)。我看了看文檔進行的UITableViewController,發現它有一個叫「的tableView」所以我試圖財產...

[[self tableView] setTitle:@"Eeek!"]; 

這沒有工作,我應該已經試過了......

[self setTitle:@"Eeek!"]; 

我想知道,當你繼承UITableViewController並添加代碼時,你實際處理tableView而不是UITableViewController,這是否有意義?

alt text

加里

+0

通過設置表格的標題,你的意思是什麼?標題位於表格單元格上方,還是導航欄上的標題? – BoltClock 2010-10-22 17:01:03

+0

位於iphones狀態欄和單元格之間的藍條上的標題(見上圖),標題爲「Eeek!」 – fuzzygoat 2010-10-22 17:04:29

+0

我明白了,title屬性實際上是由UITableViewController繼承的UIViewController。當我看不到「標題」作爲UITableViewController的屬性時,我感到困惑,我現在完全明白,它在那裏,你只需要遵循鬍子屑。 – fuzzygoat 2010-10-22 17:38:06

回答

1

什麼要設置實際上是UIViewController中(父類的UITableViewController)的稱號,這是什麼樣的UINavigationController用來顯示在其的導航欄標題(在圖像中的藍色條)

編輯以更好地回答問題:所以不,當你繼承UITableViewController時,你實際上是在處理控制器,而不是表格視圖本身。

1

對問題的簡短回答,否 - 您仍在處理控制器的屬性。兩個setTitle:操作之間的區別是:

// This message is being sent to the UITableViewController 
[self setTitle:@"Eeek!"]; 

// This message is being sent to the UITableView property of the UITableViewController 
[[self tableView] setTitle:@"Eeek!"]; 

還有就是UITableView對象沒有setTitle:方法,使失敗。

從MVC的角度出發,首先是在Controller上設置屬性,第二是在View上設置屬性。

相關問題