Do the following steps
1)在按钮的动作中(通过单击该按钮弹出应该出现)编写代码
[这里 PopOverContentViewController 是一个 viewController,我有表格视图和几个项目列表,当弹出窗口到达时应该显示这些列表]
- (IBAction)callPopOver:(id)sender
{
UIButton *button = (UIButton*)sender;
PopOverContentViewController1 *popOverContent = [[PopOverContentViewController1 alloc]initWithNibName:@"PopOverContentViewController1" bundle:nil];
UINavigationController *navbar = [[UINavigationController alloc] initWithRootViewController:popOverContent];
navbar.contentSizeForViewInPopover = CGSizeMake(266, 200);
popover = [[UIPopoverController alloc] initWithContentViewController:navbar];
popover.delegate = self;
[popover presentPopoverFromRect:CGRectMake(button.frame.size.width / 2, button.frame.size.height / 1, 1, 1) inView:button permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
[popover setPopoverContentSize:CGSizeMake(266, 200) animated:YES];
[popUpContent release];
}
2)现在要在点击任何行时更改表格视图,在 PopOverViewController.m 中键入此代码
[这里 PopOverViewController2 是 ViewController,我们将在其中显示下一个表视图]
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
PopOverViewController2 *secondViewController = [[PopOverViewController2 alloc] init];
[self.navigationController pushViewController:secondViewController animated:YES];
[secondViewController release];
}
3)为避免导航时弹出框大小的变化,在两个视图控制器(即 PopOverContentViewController1 和 PopOverContentViewController2)的 viewDidLoad 中编写以下代码
- (void)viewDidLoad
{
[super viewDidLoad];
[self setContentSizeForViewInPopover:CGSizeMake(266, 200)];
}