如何获取 UINavigationController 子视图

Posted

技术标签:

【中文标题】如何获取 UINavigationController 子视图【英文标题】:How to get UINavigationController child view 【发布时间】:2010-09-12 18:09:56 【问题描述】:

我在 splitView 中有一个详细视图控制器 - SearchDeatilViewController。但是该视图控制器附加到导航控制器。 我怎样才能让那个子视图控制他?

我试过这样,重新加载子视图tableView:

SearchDetailViewController *detail1 = (SearchDetailViewController *)[self.viewControllers objectAtIndex:1];
[detail1.tableView reloadData];

但它给了我错误:

-[UINavigationController reloadTable]: 无法识别的选择器发送到实例

我在变量 detail1 中得到的对象似乎是 navigationController 类型。显然我需要更深一层。我该怎么做?

谢谢

【问题讨论】:

为什么错误显示reloadTable,而您的代码显示reloadData 我完全不明白这个问题。 “我怎样才能让那个子视图控制他”是什么意思? 好的。我有 splitView,它有两个视图:masterView 和 detailView。 DetailView 也有 navigationController。但我想让 detailView 在其中重新加载表。但是当我从位置 1 的 splitView 获取视图控制器时,我得到了最顶层的控制器,那就是 navigationController。如何获取从 splitView 获得的 navigationController 下的视图??? Douwe Maan:它实际上说:*** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“*** -[UINavigationController tableView]:无法识别的选择器发送到实例 0x4ca6a50” 【参考方案1】:

我找到了解决方案。只需标记子视图,然后使用 [myView viewWithTag:X] 访问它们即可。

【讨论】:

以上是关于如何获取 UINavigationController 子视图的主要内容,如果未能解决你的问题,请参考以下文章

UINavigationController

UINavigationController 风格

全屏显示 ViewController

多控制器

UINavigationControllerDelegate 不起作用

viewController 出现时出现黑色