Табличное представление в поповере - PullRequest
0 голосов
/ 25 октября 2011

как мы можем реализовать табличное представление в popover в ipad. Мне нужно дать кнопку на панели инструментов, при нажатии которой должен отображаться поповер с табличным представлением в нем с 4 строками. Может кто-нибудь, пожалуйста, помогите мне с этим.

Благодарю за внимание

Ответы [ 3 ]

4 голосов
/ 15 марта 2013

Вы можете использовать приведенный ниже код.

Сначала вы должны создать tableView. Для этого используйте приведенный ниже код.

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{

    return [recipe.ingredients count];
}

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return [recipe.ingredients count];
}

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *TableIdentifier=@"Cell";

    UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:TableIdentifier];
    if (cell==nil) {
        cell=[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:TableIdentifier];
    }
    cell.textLabel.text=[recipe.ingredients objectAtIndex:indexPath.row];
    [cell setSelectionStyle:UITableViewCellSelectionStyleNone];
     cell.textLabel.textColor=[UIColor blackColor];
cell.textLabel.font=[UIFont fontWithName:@"Helvetica" size:18];

return cell;

}

Затем добавьте метод для нажатия кнопки

    -(IBAction)setData:(id)sender
    {
    UIViewController *popoverContent=[[UIViewController alloc] init];
    UITableView *tableView=[[UITableView alloc] initWithFrame:CGRectMake(265, 680, 0, 0)    style:UITableViewStylePlain];

    UIView *popoverView=[[UIView alloc] initWithFrame:CGRectMake(0, 0, 200, 300)];

    popoverView.backgroundColor=[UIColor whiteColor];

    popoverContent.view=popoverView;
    popoverContent.contentSizeForViewInPopover=CGSizeMake(200, 420);
    popoverContent.view=tableView; //Adding tableView to popover
    tableView.delegate=self;
    tableView.dataSource=self;

    self.popoverController=[[UIPopoverController alloc]    initWithContentViewController:popoverContent];
    [self.popoverController presentPopoverFromRect:CGRectMake(400, 675, 0, 0) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionDown animated:YES];

}

1 голос
/ 25 октября 2011

У меня есть класс ChooseAdsViewController для таблицы. Чтобы показать это, я использую:

ChooseAdsViewController* adsController = [[ChooseAdsViewController alloc] initWithStyle:UITableViewStyleGrouped];
adsController.images = m_images;
UINavigationController* navController = [[UINavigationController alloc] initWithRootViewController:adsController]; 
UIPopoverController *popover = [[UIPopoverController alloc] initWithContentViewController:navController];
[popover setPopoverContentSize:CGSizeMake(320, 560)];
self.popoverController = popover;          
popoverController.delegate = self;
[popoverController presentPopoverFromRect:sender.frame
                                   inView:self.scrollView
                 permittedArrowDirections:UIPopoverArrowDirectionAny
                                 animated:YES];
[popover release];
[navController release];
[adsController release];

Контроллер навигации вообще не нужен.

0 голосов
/ 25 октября 2011

Вам просто нужно добавить просмотр таблицы в качестве представления popCow viewController.

  PopViewController *popViewController = [[popViewController alloc] 
                                         initWithNibName:@"PopViewController" 
                                          bundle:[NSBundle mainBundle]]; 

  UITableView *tableView = [[UITableView aloc]initWithStyle:UITableViewStyle...];
  //Remember to set the table view delegate and data provider

  popViewController.view = tableView;//OR [popViewController.view addSubView:tableView]

  UIPopoverController *popover = [[UIPopoverController alloc] initWithContentViewController:popViewController]; 

Другим способом будет установка popover viewController в качестве TableViewController.

Надеюсь, это поможет

...