Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Change detail view from MasterDetail iPad app using storyboard

I'm little lost here. I have a basic master-detail aplication, and I want to change the detail view according to the selected row in MasterViewController, but the views have different content, one has an image gallery, and the other one will load a video on full screen. It's not just refresh the detail view, have to load another view. How is the better(fast) way to do that?

like image 212
Vinícius Albino Avatar asked Feb 19 '12 19:02

Vinícius Albino


3 Answers

I'll suggest you to use a replace segue.

Just create a segue to the desired view initiated by your row with a Style: Replace, and Destination: Detail Split.

Segues were introduced in the iOS 5 SDK

EDIT:

These are step-by-step instructions to accomplish what you need. From now on:

  • the item that should be pressed for the action to take place (a button or row in master view) = *Button;
  • the view you want to be placed in the iPad's detail view = *Detail.

just a bit for naming for ease of explanation

  1. Hold ctrl click on *Button then hold and drag to *Detail and release to create your segue.
  2. In the popup pick Replace
  3. Select your segue, open Attributes inspector and set Destination to Detail Split

That's all.

More on segues: http://www.scott-sherwood.com/?p=219

like image 112
Uko Avatar answered Nov 14 '22 22:11

Uko


Specifically, in CS193P, check out the latest version, and look at lecture #7. Paul doesnt finish the part with the replace Segue, but he DOES provide an example with very good reusable code (Psychologist with Dr Pill)

like image 1
JMattos Avatar answered Nov 14 '22 22:11

JMattos


If you are using a dynamic tableview in your MasterViewController, implement numberOfRowsInSection:(NSInteger)section Method with:

return [_youDataArrayNameHere count];

then on cellForRowAtIndexPath configure the cell:

cell.textLabel.text = [_youDataArrayNameHere  objectAtIndex:indexPath.row];

and in didSelectRowAtIndexPath, call any other view based on the selected row:

//
if (indexPath.row == 0) {
     [_detailViewController.navigationController pushViewController:[self.storyboard instantiateViewControllerWithIdentifier:@"anotherVC01Here"] animated:YES];
}
like image 1
LAOMUSIC ARTS Avatar answered Nov 14 '22 23:11

LAOMUSIC ARTS