2013-10-23 104 views
0

可能是一個渡輪容易(愚蠢)的問題,但我現在堅持四個幾個小時。我搜索了很多項目,但我不知道我做錯了什麼。 我最近開始爲IOS開發。不能從視圖中填充表

我在做什麼:我有一個實用程序的應用程序與主視圖中的一個表。我試圖用代碼動態地填充表格。

.h文件中

#import "FlipsideViewController.h" 
@interface MainViewController : UIViewController <FlipsideViewControllerDelegate, UITableViewDataSource,UITableViewDelegate> 
{ 
    NSArray *JSONArray; 
} 

@property (nonatomic, weak) IBOutlet UITableView *tableview; 
@property (nonatomic, retain) IBOutlet NSArray *JSONArray; 
@property (nonatomic, retain) IBOutlet NSArray *dynamicTable; 

@end 

.m文件

@interface MainViewController() { 
    NSMutableArray *_objects; 
} 
@end 

@implementation MainViewController 

@synthesize JSONArray; 
@synthesize tableview; 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    self.tableview.delegate = self; 

    if (!_objects) { 
     _objects = [[NSMutableArray alloc] init]; 
    } 
    [_objects insertObject:[NSDate date] atIndex:0]; 

    NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0]; 
    [self.tableview insertRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic]; 

    dispatch_async(dispatch_get_main_queue(), ^{ 
     [self.tableview reloadData]; 
    }); 
} 

爲了填補我使用的默認IOS例子(婁後)

當我啓動應用程序表中, numberOfRowsInSection,cellForRowAtIndexPath等...不加載。我做錯了什麼?

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 
    return 1; 
} 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
    return _objects.count; 
} 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath: (NSIndexPath *)indexPath 
{ 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath]; 

    NSDate *object = _objects[indexPath.row]; 
    cell.textLabel.text = [object description]; 
    return cell; 
} 

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    return YES; 
} 

- (void)tableView:(UITableView *)tableView commitEditingStyle: (UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    if (editingStyle == UITableViewCellEditingStyleDelete) { 
     [_objects removeObjectAtIndex:indexPath.row]; 
     [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade]; 
    } else if (editingStyle == UITableViewCellEditingStyleInsert) { 

    } 
} 

回答

2

您忘記將該類設置爲數據源。嘗試使用此代碼:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    self.tableview.delegate = self; 
    self.tableview.datasource = self; // <-- You forgot this 

    if (!_objects) { 
     _objects = [[NSMutableArray alloc] init]; 
    } 

    [_objects insertObject:[NSDate date] atIndex:0]; 

    [self.tableview reloadData]; 
} 
2

你忘了在viewDidLoad中的數據源委託:

[self.tableview setDataSource:self]; 

實際上有用來處理數據,另一個對付一個的TableView一個兩位代表與表格視圖進行交互。