【发布时间】: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 不起作用。
有什么想法吗?
【问题讨论】:
标签: iphone uinavigationcontroller subview uiapplicationdelegate