Sabarish
Sabarish

Reputation: 1184

how to get the cell value of a selected cell from Table view in iPhone

Am displaying images in a table view controller where the images are rendered from the URL as XML file. It works well with listing images as scroll view. Now i want to select a particular image and the window should show the selected Cell images alone. For this do i need to get the Cell value. If so how can i get the particular cell value and display its corresponding images as a collection view in next window.

Kindly suggest me an idea. For your better understanding i pasted below an image how my storyboard currently looks and how i need an output. Storyboard and output

Hope you understand my problem.

Upvotes: 8

Views: 36778

Answers (4)

Aditya Mathur
Aditya Mathur

Reputation: 1185

You should use UITableViewDelegate

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

indexPath will return you number of section and number of row of selected row.

indexPath.section;
indexPath.row

I hope it was clear. For further understanding you may refer to following tutorials: http://www.edumobile.org/iphone/iphone-programming-tutorials/using-iphone-tableview-for-displaying-data/ http://www.raywenderlich.com/1797/how-to-create-a-simple-iphone-app-tutorial-part-1

Upvotes: 2

Narasimha Nallamsetty
Narasimha Nallamsetty

Reputation: 1263

For me this is working..

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
    customerVC = [[UIStoryboard storyboardWithName:@"Main" bundle:nil]instantiateViewControllerWithIdentifier:@"customerInfoView"];

    customerVC.selectedText = cell.textLabel.text;
    //customerVC is destination viewController instance)

    [self.navigationController pushViewController:customerVC animated:YES]; 
}

And in your destination view controller header file just declare a string like

@property NSString *selectedText;

In viewcontroller.m assign the value like

self.selectedBiller.text = self.selectedText;

(selectedBiller is a label here)

Upvotes: 0

Vinayak Kini
Vinayak Kini

Reputation: 2919

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
// here we get the cell from the selected row.
          UITableViewCell *selectedCell=[tableView cellForRowAtIndexPath:indexPath]; 

// perform required operation
         UIImage * image =selectedCell.image;

// use the image in the next window using view controller instance of that view.
}

Upvotes: 25

Nameet
Nameet

Reputation: 650

In this case I think you should maintain id for each image on the row. It could be your row number, if you have one image per row. Then from

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

you can pass the id to the next view controller. In this view controller you should use this id to get the required data to create your collection view. Hope this helps.

Upvotes: 1

Related Questions