我们如何在ipad中的popover中实现表视图。我必须在我的工具栏中给出一个按钮,点击一个弹出框应该显示,其中有4行的表格视图。任何人都可以帮助我。
感谢adavnce
答案 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。
希望有所帮助