представление таблицы popOver - PullRequest
2 голосов
/ 22 февраля 2011

В моем проекте при нажатии на кнопку строка, присутствующая в кнопке Метод действия, должна храниться в ячейке представления всплывающей таблицы.

Я могу сохранить одну строку в первой ячейке ....

А теперь у меня проблема в том, что у меня было четыре кнопки, каждое действие кнопки состоит из 4 строк, и теперь необходимо одновременно отображать всплывающую таблицу ,,,

  #import "SecondDetailViewController.h"
  -(IBAction)viewButtonPressed:(id)sender
  {
     [super viewDidUnload];

     //create the view controller from nib
     self.tablePopoverController = [[[TablePopoverController alloc] 
                             initWithNibName:@"TablePopover" 
                             bundle:[NSBundle mainBundle]] autorelease];

      ////-------------------------------


     myArray = [[NSMutableArray alloc]     initinitWithObjects:myString,myString2,myString3,myString4,myString5,myString6,nil];

     tablePopoverController.getingOrder = myArray ; 

      NSLog(@"table popo  %@",myArray);

      tablePopoverController.contentSizeForViewInPopover = CGSizeMake(250, 250);

      //create a popover controller
      self.popoverController = [[[UIPopoverController alloc]
                                 initWithContentViewController:tablePopoverController] autorelease];


      //present the popover view non-modal with a
      //refrence to the button pressed within the current view
      [popoverController presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

  }

  -(IBAction)orderButtonPressed
  {
      myString = staterlable1.text;
      [myArray addObject:myString];
      NSLog(@"myArray%@",myString);
  }

  -(IBAction)orderButton2Pressed
  {
      myString2 = staterlable2.text;
      NSLog(@"myArray%@",myString2);
      [myArray addObject:myString2];
  }
  -(IBAction)orderButton3Pressed
  {
      myString3 = staterlable3.text;
      [myArray addObject:myString3];
      NSLog(@"myArray%@",myString3);
  }

  -(IBAction)orderButton4Pressed
  {
      myString4 = staterlable4.text;
      [myArray addObject:myString4];
      NSLog(@"myArray%@",myString4);
  }

  -(IBAction)orderButton5Pressed
  {
      myString5 = staterlable5.text;
      [myArray addObject:myString5];
      NSLog(@"myArray%@",myString5);

  }
  -(IBAction)orderButton6Pressed
  {
      myString6 = staterlable6.text;
      [myArray addObject:myString6];
      NSLog(@"myArray%@",myString6);

Моя проблемапосле нажатия этих кнопок объекты NSttring myString1 to - myString6 должны храниться в NSMutableArray, чтобы я отображал все строки в TableViewPopOverController, который будет всплывать при нажатии другой кнопки во втором detailViewController ........

Заранее спасибо ......

1 Ответ

2 голосов
/ 06 марта 2011

Обычный способ сделать это - встроить TablePopoverController в UINavigationController. Затем в TablePopoverController при обработке tableView: tableView didSelectRowAtIndexPath: indexPath вставьте detailViewController в UINavigationController.

Например, вы можете построить структуру контроллера следующим образом (на основе вашего примера):

  //create a popover controller
  self.popoverController = [[[UIPopoverController alloc]  initWithContentViewController:[[[UINavigationController alloc] initWithRootViewController:initWithContentViewController:tablePopoverController] autorelease]] autorelease];

Это похоже на ваш код создания поповера, вставьте UINavigationController под поповер. Теперь в TablePopoverController вы должны обрабатывать выборки строк обычным способом с помощью UINavigationController

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    DetaiViewController *detail = [[DetaiViewController alloc] init];
    /* Configure detail using indexpath here indexPath
    ...
    */
    [self.navigationController pushViewController:detail animated:YES];
}

Это будет работать должным образом (путем добавления нового представления в UINavigationController), потому что мы устанавливаем структуру контроллера с помощью UINavigationController.

...