在popover中的表视图

时间:2011-10-25 07:53:01

标签: ipad uipopovercontroller

我们如何在ipad中的popover中实现表视图。我必须在我的工具栏中给出一个按钮,点击一个弹出框应该显示,其中有4行的表格视图。任何人都可以帮助我。

感谢adavnce

3 个答案:

答案 0 :(得分:4)

您可以使用以下给定的代码。

首先,你必须使用下面给出的代码创建一个tableView.For。

-(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 :(得分:1)

我有表的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];

一般情况下不需要导航控制器。

答案 2 :(得分:-1)

您只需要将tableview添加为popover 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。

希望有所帮助