2012-06-28 154 views
3

我只是想要一個靜態表格查看其中的項目。我爲此任務使用了Xcode 4.2和故事板。所以我創建了一個TableViewController(子類UITableViewController)的TableView。我將內容定義爲「靜態單元格」和樣式「分組」。靜態單元格:內容不出現

之後,我把一些標籤和所有那些我想要在這些單元中擁有的物體。我創建奧特萊斯在tableViewController:

#import <UIKit/UIKit.h> 

@interface tableviewcontroller : UITableViewController 
@property (weak, nonatomic) IBOutlet UILabel *label1; 
@property (weak, nonatomic) IBOutlet UILabel *label2; 
@property (weak, nonatomic) IBOutlet UISegmentedControl *segmented; 
@property (weak, nonatomic) IBOutlet UIImageView *imageview; 
@property (weak, nonatomic) IBOutlet UITextView *text; 

@end 

放入電池標籤部分內容:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    self.label1.text = @"This is a title"; 
    self.label2.text = @"Annika"; 
    self.imageview.image = [UIImage imageNamed: @"picture.jpg"]; 
} 

構建之後並運行,它不顯示我的任何元素的...做什麼我做錯了?

左:在故事板中,右:在模擬器中。 enter image description here

+0

你把任何信息放在單元格中嗎? – Alexander

+0

是的,至少對於標籤和圖片。 (參見上文,我編輯了我的問題!)但是,儘管我不會在細胞中添加任何信息,但它至少應該讓我看到細分控制? – Kirinriki

+0

tableviewcontroller一定有問題。我意識到,當我沒有控制器時,我的標籤將被查看。所以也許必須有一個隱式聲明tableviewcontroller中的內容。 – Kirinriki

回答

13

對於靜態表視圖,你不能執行任何數據源的方法。 UITableViewController的基本實現具有它們自己的版本,這些方法通過讀取故事板文件來返回適當的內容。這些方法是提供表格內容的方法,例如numberOfRows,numberOfSections,heightForRow,cellForRow等等。

就你而言,你已經實施了tableView:cellForRowAtIndexPath:,並且每次都返回空單元格。這意味着你的單元格大小是正確的,但內容已經消失。

此外,靜態表格視圖中內容的任何出口都將被設置,直到調用[super viewWillAppear:animated]之後的。在viewDidLoad中,它們仍然是零,在那裏你調用它們,因爲表格視圖在這一點上沒有要求它的任何內容。

+0

好吧,所以我必須在' - (void)viewWillAppear:(BOOL)animated'中設置所有插座。像'[self setLabel1:nil];'?但不設置零。如果這是正確的,我必須寫什麼而不是'nil'?對不起,我是一個如此血腥的初學者。 – Kirinriki

+0

你在問題中的代碼很好,只是在錯誤的地方! – jrturton

+0

這很好聽。我把'self.Label1.text = @「這是一個標題」; (void)viewDidLoad,in - (void)viewWillAppear:(BOOL)animated',在' - (void)viewDidAppear:(BOOL)animated'中,但它仍然沒有' t想要被觀看:(我沒有足夠的知識來把它放在應該放的地方,這也許就是爲什麼我把代碼隨機地放在每個可能的地方 – Kirinriki