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

时间:2011-05-13 09:56:24

标签: iphone uinavigationcontroller subview uiapplicationdelegate

我有一个加载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 个答案:

答案 0 :(得分:0)

因此,您的Home VC会显示表视图的ModealVC。表视图执行self.NavCon pushVC:detail。然后细节无法推动子细节。这是场景吗?

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

我也想知道你是否可以将tableview推送到NavCon而不是模态呈现;然后细节应该有一个完整的NavCon,然后可以反过来推送一个子细节。

希望有所帮助。 -Mike