iPhone 从子视图访问导航控制器

Posted

技术标签:

【中文标题】iPhone 从子视图访问导航控制器【英文标题】:iPhone accessing navigation controller from a subview 【发布时间】:2011-05-13 09:56:24 【问题描述】:

我有一个加载 tableview 的导航控制器,用户可以从这里选择一个行来加载被推送到堆栈上的详细视图。此详细视图控制器在底部栏中有一个分段控件,该控件使用 [self.view insertSubview:firstDetailViewController.view atIndex:0] 加载到一系列视图中;等等……

这很好 - 加载的子视图之一还包含一个加载另一个详细视图的表。这导致了问题,因为我无法从子视图中访问导航控制器。为此,我必须使用:

YourAppDelegate *del = (YourAppDelegate *)[UIApplication sharedApplication].delegate;
[del.navigationController pushViewController:nextViewController animated:YES];

我在这里找到的:Accessing a Top Navigation Controller from a Subview Navigation Controller。

但还有另一个需要类似功能的实例。从主视图控制器加载列表视图并以模态方式呈现。从这里我使用 self.navigationController 等将 2 个详细视图推送到这个新的导航堆栈上......效果很好。但是当子视图尝试推送详细视图时它不起作用。 self.navigationController 不起作用,appDelegate 一个将它们推送到另一个导航控制器上,而 self.parentViewController.navigationController 不起作用。

有什么想法吗?

【问题讨论】:

【参考方案1】:

所以你的 Home VC 确实展示了表格视图的 ModalVC。表格视图执行 self.NavCon pushVC: detail。然后细节无法推送子细节。是这样的场景吗?

我想知道 tableview 从哪里得到它的导航控制器,因为它是模态呈现的,不需要 NavCon。

我还想知道您是否可以将 tableview 推送到 NavCon 而不是模态显示;那么细节应该有一个完整的 NavCon,然后可以依次推送一个子细节。

希望对您有所帮助。 -迈克

【讨论】:

以上是关于iPhone 从子视图访问导航控制器的主要内容,如果未能解决你的问题,请参考以下文章

从子视图控制器返回到容器

iphone导航控制器和表格视图

iPhone导航控制器不显示

导航栏隐藏在 iPhone sdk 的弹出视图控制器上

如何导航到 iPhone 中的下一个视图控制器

iPhone - 如何将导航控制器添加到视图?