Jbryson
Jbryson

Reputation: 2905

iPhone tableview drop-down menu

I have a view controller with a table view in it and several buttons. I would like to add an additional tableview on top of the view like this (or at least what it would look like if anybody wanted to be my friend :-)):

TableViewPopdown

I don't want to just add this as a subview (like here or here)enter link description here since I don't want to check which table view is being used in my tableview delegate and datasource methods. I would rather use a separate view controller.

I don't want to use a picker because I need to display a bit of info with the items in the list.

I have no problem creating the view with the corresponding controller, but how do I add it on top of the current view, just hiding portions of it?

Thanks!

Upvotes: 0

Views: 1080

Answers (3)

Jbryson
Jbryson

Reputation: 2905

Initially I simply added logic in my tableview datasource and delegate methods to destingwish between the two tableviews (as suggested by Scott Bossak above. But I have since switched to building my two views in storyboard and adding their view controllers as usual. However, to present the second table view I instanciate it like so:

SecondTableViewContriller *secondTVC = [self.storyboard instanciateViewControllerWithIdentifier:@"secondTVC"];

then add it as a child view controller:

[self addChildViewController: secondVC];
[secondVC didMoveToParentViewController:self];

I then implemented a protocol to pass the information back to the parent view controller once a row has been selected.

Upvotes: 0

ShamsKhan
ShamsKhan

Reputation: 31

Apple has a sample code of TableView which deals with this issue. https://developer.apple.com/library/ios/#samplecode/TableViewUpdates/Introduction/Intro.html%23//apple_ref/doc/uid/DTS40010139 Above URL is the link to download the sample code from Apple developer library. Hope it helps.

Upvotes: 2

hundreth
hundreth

Reputation: 841

This might be overly simplistic for your application, but I have found it to be effective when I have had to do something similar.

You can add this 'drop down menu' view controller's view to the main UIWindow of the entire application. You can add a UIGestureRecognizer on the window as well. If the tap is outside of the view, make it fade away and remove it from the view hierarchy.

Upvotes: 0

Related Questions