2012-04-14 10 views
4

Ich habe einige Probleme, bei denen meine UITableView nicht neu lädt, ich habe die Verknüpfung der Steckdose neu gemacht, um sicherzustellen, dass das nicht das Problem war. Ich habe auch versucht, [Selbsttabelle] reloadData] zu verwenden, aber das scheint auch nicht zu funktionieren. Ich habe die Probleme debugged, aber es überspringt einfach reloadData und die App läuft weiter, als wäre der Code nicht da.numberOfRowsInSection wird nicht für UITableView aufgerufen

Top Teil meiner .m-Datei ist nichts in ViewDidLoad

#import "SettingsCourses.h" 

@implementation SettingsCourses 
@synthesize settingsCourses; 
@synthesize Delegate; 
@synthesize BackButton; 
@synthesize DeleteButton; 
@synthesize table; 
@synthesize courses; 
@synthesize dataHandler; 


- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) { 
    // Custom initialization 
    dataHandler = [[DataHandler alloc] init]; 
    dataHandler.coursesDelegate = self; 
    courses = [dataHandler fetchCourses]; 
    NSLog(@"Debug Count: %i", [courses count]); 
} 
[table reloadData]; 
return self; 
} 

- (void) viewWillAppear:(BOOL)animated { 
[table reloadData]; 
} 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
if (courses) { 
    NSLog(@"Count: %i", [courses count]); 
    return [courses count]; 
} 
else { 
    NSLog(@"Count: 0"); 
    return 0; 
} 
} 
getan

Meine .h-Datei

#import <UIKit/UIKit.h> 
#import "dataHandler.h" 

@interface SettingsCourses : UIViewController 

@property (strong, nonatomic) DataHandler *dataHandler; 
@property (strong, nonatomic) NSMutableArray *courses; 
@property (strong, nonatomic) IBOutlet UIView *settingsCourses; 
@property (nonatomic, strong) id Delegate; 
@property (weak, nonatomic) IBOutlet UIButton *BackButton; 
@property (weak, nonatomic) IBOutlet UIButton *DeleteButton; 
@property (weak, nonatomic) IBOutlet UITableView *table; 


- (IBAction)Delete:(id)sender; 
- (IBAction)Back:(id)sender; 

Vielen Dank für jede Hilfe!

+0

Haben Sie die DataSource der Tabellenansicht festgelegt? – UIAdam

+0

Ist die Tabelle mit dem 'delegate' und der' dataSource' in der xib verbunden? Hast du die 'UITableViewDelegate' und' UITableViewDataSource' in der .h Datei hinzugefügt? – Mat

Antwort

25

diese Zeilen hinzufügen:

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    self.table.dataSource = self; 
    self.table.delegate = self; 
} 

aber viel einfacher wäre es, die Datenquelle in setzen Interface-Aufbau auch bekannt als die XIB-Datei.

+0

Danke das hat funktioniert! :) –

+0

du hast mir auch geholfen – RollRoll

+1

Hat mir auch geholfen. Vergessen, dies zu verbinden! Hoppla – Tander

0

Sie scheinen den Tabellendelegaten oder die Datenquelle nicht festzulegen. Gehen Sie fügen Sie diese einfach den folgenden Code, wenn in Ihrer Einheit Methode

table.dataSource = self or wherever your data source is; 
table.delegate = self: 
1

Versuchen Sie, diese

@interface SettingsCourses : UIViewController <UITableViewDelegate,UITableViewDataSource> 
0

Sie vielleicht versuchen, Datenquelle und Delegierter im Interface Builder zu trennen und wieder anschließen. IB "vergisst" manchmal Verbindungen.

0

Ich hatte einen UITableViewController in IB eingerichtet, aber der Name der Klasse stimmte nicht mit der Datei UITableViewController überein, die ich hatte. Anfänger!

Verwandte Themen