2010-02-12 4 views
0

J'ai un contrôleur tableview. si une cellule est sélectionnée i effectuer les opérations suivantes:commit l'objet suivant TableViewController

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 

ablogSingleCatTableViewController *singleCatTableViewController = [[ablogSingleCatTableViewController alloc] initWithStyle:UITableViewStylePlain]; 

// Push the detail view controller. 
[[self navigationController] pushViewController:singleCatTableViewController animated:YES]; 
[singleCatTableViewController release]; 
} 

je veux de commettre un objet au contrôleur suivant de vue qui glisse après cette ligne est sélectionnée. dois-je faire quelque chose comme ça?

ablogSingleCatTableViewController *singleCatTableViewController = [[ablogSingleCatTableViewController alloc] initWithStyle:UITableViewStylePlain]; 
[singleTableViewController setMyObject:superDuperObject]; 

ou est-il un moyen plus facile de faire quelque chose comme ça? J'ai besoin de cet objet directement après l'initialisation de ce tableviewcontroller, pour le remplir avec des données spécifiques qui appartiennent à cet objet.

s'il vous plaît donnez-moi quelques conseils.

grâce

Répondre

1

Vous pouvez aussi passer l'objet au contrôleur suivant de vue lorsque vous initialiser le contrôleur de vue. Pour ce faire, vous devez implémenter votre propre initialiseur pour le contrôleur de vue.
Par exemple:

- (id)initWithStyle:(UITableViewStyle)style superDuper:(SuperDuper*)superDuperObject { 
    if (self = [super initWithStyle:style]) { 
     superDuper = superDuperObject; 
    } 
    return self; 
} 

Ensuite,

ablogSingleCatTableViewController *singleCatTableViewController = 
    [[ablogSingleCatTableViewController alloc] initWithStyle:UITableViewStylePlain superDuper:superDuperObject]; 
+0

oui, je pensais à, écraser la méthode initialize, merci. – choise