0

我已经为 iPhone 界面创建了一个应用程序,它显示 aUITableView作为它的 rootviewcontroller。当我们选择它的任何一行时,它会打开相应的 detailViewController,我们从中选择值,它会显示UITableView在 masterViewController 的单元格中。这个应用程序在 iPhone 模拟器中运行得非常好。

现在我想将此应用程序合并到 iPad 应用程序中。为此,我创建了一个UIPopOvermasterViewController 并将其分配给弹出框。现在的问题是,UITableView最初显示在弹出窗口中。但是当我们选择任何一行时,下一个视图不会出现在弹出窗口中,因为它在应用程序仅针对 iPhone 运行时出现。我应该如何使它工作,以便我可以导入具有原始功能的应用程序UIPopOver

4

1 回答 1

2

我认为您正在从 masterViewController 推送 DetailViewController。但是您的 masterviewController 应该实现 NavigationController,我的意思是在弹出窗口中显示 masterViewController(your tableviewcontroller) 时,您应该执行以下操作:

MasterViewController *theMasterViewController = [[MasterViewController alloc] init];

    UINavigationController *navCont = [[UINavigationController alloc] initWithRootViewController:theMasterViewController]; 
    [theMasterViewController release];
    UIPopoverController *popOverController = [[UIPopoverController alloc] initWithContentViewController:navCont];
    popOverController.popoverContentSize = CGSizeMake(400, 400);
    [popOverController presentPopoverFromRect:btn.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

当用户选择任何行时,在 didSelectRowAtIndexPath 中执行以下操作:

DetailViewController *detailViewController = [[DetailViewController alloc] init];
    [self.navigationController pushViewController:detailViewController animated:YES];
    [detailViewController release];

希望这可以帮助!

于 2012-10-08T07:14:54.780 回答