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

Posted

技术标签:

【中文标题】移动到显示 UITableView 的弹出窗口中的下一个视图【英文标题】:Moving to next view in popover displaying UITableView 【发布时间】:2012-10-08 06:26:46 【问题描述】:

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

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

【问题讨论】:

你能发布一些代码,你是如何添加detailViewController的? 【参考方案1】:

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

希望这会有所帮助!

【讨论】:

非常感谢 :) 它真的很有帮助...我犯了一个错误,只用 masterviewcontroller 初始化 popovercontroller...现在我已经通过了导航控制器,它在视图之间切换非常好:) 现在出现了一个新问题......我的委托方法不起作用,detailViewController 的值没有被传递给 masterViewController :( 在 uipopover 控制器外部测试时工作正常......请需要进一步的帮助 哪些委托方法不起作用以及如何将值从 detailviewcontroller 传递到 masterviewcontroller?最好用一些代码提出不同的问题。 我正在使用协议将值从 detailViewController 传递给 masterViewController ...对不起,我是新来的...无法弄清楚如何粘贴代码 第一件事,我猜在按钮点击时你会弹出你的 detailviewcontroller,第二件事,你可以将你的代码粘贴到你写问题的同一区域。点击编辑您的问题并将代码粘贴到那里。

以上是关于移动到显示 UITableView 的弹出窗口中的下一个视图的主要内容,如果未能解决你的问题,请参考以下文章

iframe中的弹出窗口如何显示在最外层?

切换到同一窗口中的弹出窗口

Android Studio 3.0 rc2中的弹出文档

Kivy Python 中的弹出窗口 - 显示在前面

kivy:带有进度条的弹出窗口

移动时附加到 UICollectionView 中的单元格的弹出框被称为此集合视图的 ReloadData