移动到显示UITableView的弹出窗口中的下一个视图

时间:2012-10-08 06:26:46

标签: iphone ipad uitableview uipopovercontroller

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

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

中导入具有原始功能的应用程序

1 个答案:

答案 0 :(得分:2)

我认为你是从masterViewController推送DetailViewController。但你的masterviewController应该实现NavigationController,我的意思是在popover中显示masterViewController(你的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];

希望这有帮助!