I have a uitableview that is populated from a sqlite query.
I want to select or click on a row and then display that row’s value in a uilabel field. To show the user that the row was selected.
I also want to pass that value on to different controllers that will be called later.
Here is a copy of my cellForRowAtIndexPath:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"psystem";
PSystem *psystem = [self.ppdm_systems objectAtIndex:indexPath.row];
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
// Set up the cell...
// self.accessoryType = UITableViewCellAccessoryCheckmark;
cell.textLabel.text = psystem.system_id;
return cell;
}
I took out the _label.text …. in my various experiments.
Now what is not working is the passing of the value to different controllers.
Using the example listed here, the source controller is TableViewController and is where the value is set. The target controller is DetailViewController.
I can pass the title of the tab bar in, but that’s from TableView –> DetailView.
I am not sure how to pull from tableview; ie: Tableview <– DetailView when I am in DetailView.
thx
In your
UIViewController, implement:When you want to push a new view controller, you just call
-valueForSelectedRowand then use that value to push the controller.This is assumed that you have a
UITableViewCellsubclass, with a property set to some model object. When you don’t have that and just set thetextproperty, thatNSStringobject will be your ‘model’ object, although it would be easier when your cells handle custom model objects.EDIT: Thanks for editing your answer. I now have the information I need. In this line:
cell.textLabel.text = psystem.system_id, you setup the cell by simply setting thetextLabel‘s text property. This is what I described in the paragraph above. I always create aUITableViewCellsubclass, with a property set the the completePSystemobject. When you assign aPSystemobject to the cell, it will handle it’s contents, so you can easily manage your view in the, well, view. That’s a very compelled approach since you never have to look at the controller again to alter the view’s contents.However, it can be done the way you currently have it. It would look something like:
In this case, your
PSystemmodel has been replaced with anNSStringobject. For this, it’s enough, but it could be so much easier to have the object itself. Okay, that can also be done by selecting thePSystemobject again from thep_systemarray by theNSIndexPath, but things will become harder once you come up with more complex tableviews.