2010-09-29 10 views
0

Hé les gars! J'ai quelques problèmes rechargement ma tableView. J'ai sous-classes mon tableView, avec une classe appelée RadioTable. J'ai aussi sous-classes mes TableViewCells, mais ce n'est pas important ici.Rechargement de la tableVue en cas de sous-classement causant un plantage

Je dois souligner que je suis assez nouveau, et construit ma sous-classe à partir de certains tutoriels et d'autres choses.

Tout d'abord, voici le message d'erreur que je reçois lorsque j'essaie de recharger mes données. Je le recharge avec [self.tableView reloadData].

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UITableViewController loadView] loaded the "MainView" nib but didn't get a UITableView.' 

Bon, alors le problème est assez clair. La vue (mon fichier nib) n'a aucun tableView connecté au propriétaire du fichier. Et c'est ce que j'ai essayé de résoudre. J'ai essayé d'ajouter un IBOutlet dans ma sous-classe, et de définir la propriété tableView ici.

(Mon tableView-sous-classe est héritée de UITableView, juste des thats si clair)

Voici mon init-code:

- (id)initWithStyle:(UITableViewStyle)style { 

if ((self = [super initWithStyle:style])){ 
    RadioTable *aTableView = [[RadioTable alloc] initWithFrame:self.tableView.frame style:style]; 
    [aTableView setDelegate:self]; 
    [aTableView setDataSource:self]; 
    [aTableView setSwipeDelegate:self]; 
    [aTableView setRowHeight:54]; 

    [self setTableView:aTableView]; 
     [self.tableView setScrollEnabled:NO]; 
     [self.tableView setRowHeight:80]; 
     [self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleSingleLine]; 
     [self.tableView setSeparatorColor:[UIColor lightGrayColor]]; 
    [aTableView release]; 

} 

return self; 
} 

Le tableView fonctionne très bien quand je lance l'application , cela fonctionne parfait. Mais le problème apparaît quand j'essaye de le recharger.

Répondre

2

Je ne sais pas si cela va résoudre votre problème, mais ne créez pas la vue de votre contrôleur de vue dans sa méthode init. Au lieu de cela, remplacez loadView et créez la vue de table dans cette méthode. Affectez la table non seulement à la propriété tableView mais également à la propriété view du contrôleur de vue. Voir la documentation pour loadView et viewDidLoad pour plus d'informations.