title: Xcode 4.2 Xib Drop Down Menu
body: <p>I have created a <code>.xib</code> file and I'm having a little problem.</p>
  
  <p>I <a href="http://www.youtube.com/watch?v=e7R5_kGClM0" rel="nofollow">did a video</a> to show you where I'm at with it. The software I am using is Xcode 4.2 and its an iOS application.</p>
  
  <p>Here is a copy of the code in my view .h .m</p>
  
  <pre><code>#import &lt;UIKit/UIKit.h&gt;
  
  @interface myview : UIViewController &lt;UITableViewDelegate, UITableViewDataSource, UIPickerViewDelegate, UIPickerViewDataSource&gt;    
  
  @property (strong, nonatomic) IBOutlet UITableView* tableView;
  @property (strong, nonatomic) IBOutlet UIPickerView* pickerView;
  @property (strong, nonatomic) NSMutableArray* tableData;
  @property (strong, nonatomic) NSMutableArray* pickerData;
  
  @end
  
  
  #import "myview.h"
  
  @implementation myview
   @synthesize tableView, pickerView, tableData, pickerData;
  
  - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
  {
      self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
      if (self) {
          // Custom initialization
      }
      return self;
  }
  
  - (void)didReceiveMemoryWarning
  {
      // Releases the view if it doesn't have a superview.
      [super didReceiveMemoryWarning];
  
      // Release any cached data, images, etc that aren't in use.
  }
  
  #pragma mark - View lifecycle
  
  - (void)viewDidLoad
  {
      [super viewDidLoad];
      // Do any additional setup after loading the view from its nib.
  }
  
  - (void)viewDidUnload
  {
      [super viewDidUnload];
  
      tableView.delegate = self;
      tableView.dataSource = self;
      pickerView.delegate = self;
      pickerView.dataSource = self;
  
      tableData = [[NSMutableArray alloc] init]; // table starts empty
      pickerData = [[NSMutableArray alloc] initWithObjects:@"1", @"2", @"3", @"4", @"5", nil]; // picker starts with values 1, 2, 3, 4, 5
  
      [tableView reloadData];
      [pickerView reloadAllComponents];    // Release any retained subviews of the main view.
      // e.g. self.myOutlet = nil;
  }
  
  - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
  {
      // Return YES for supported orientations
      return (interfaceOrientation == UIInterfaceOrientationPortrait);
  }
  
  
  - (NSInteger)numberOfSectionsInTableView:(UITableView*)tableView {
      //The number of sections in UITableView
      return 1;
  }
  
  - (NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section {
      // The number of rows in the UITableView
      return [tableData count];
  }
  
  - (UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
      static NSString *cellIdentifier = @"cell";
  
      UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
      if (cell == nil) {
          cell = [ [UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellIdentifier];
  
      }
  
      // Set the table cell text to the appropriate value in tableDate
      cell.textLabel.text = [tableData objectAtIndex:indexPath.row];
  
      return cell;
  
  }
  
  - (void)tableView:(UITableView*)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
      // Whatever happens when you select a table view row.
  }
  
  - (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
  {
      // The number of sections in the UIPickerView
      return 1;
  }
  
  - (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
  {
      // The number of rows in the UIPickerView
      return [pickerData count];
  }
  
  - (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
  {
      // The data for each row in the UIPickerView
      return [pickerData objectAtIndex:row];
  }
  
  - (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
  {
      // whatever you want to happen when a row is selected.
  
      // here I am assuming you want to remove from the picker and add to the table on selection
      [tableData addObject:[pickerData objectAtIndex:row]];
      [pickerData removeObjectAtIndex:row];
  
      [tableView reloadData];
      [pickerView reloadAllComponents];
  }
  @end
  </code></pre>