如何设置 subview-viewController 的 navigationController 属性?

Posted

技术标签:

【中文标题】如何设置 subview-viewController 的 navigationController 属性?【英文标题】:How can I set navigationController property of subview-viewController? 【发布时间】:2011-07-03 07:31:47 【问题描述】:

我有一个 UIViewController,它还有另一个 UITableViewController 作为 subview

表格视图是不可见的,但有时它可以通过用户的操作可见。 (例如,搜索表格视图。)

所以,两个新的控制器实际上没有关系,(但 UIViewController 有 UITableViewController 作为成员变量),但只有它的视图有父 - 子视图的关系。

在这种情况下,用户单击表格视图中的单元格项目,我必须将新的视图控制器推送到导航控制器。

但只有父 UIViewController 在 navigationController 中,子视图 UITableViewController 不在。

所以代码

[self pushViewController:viewController animated:YES];

在 UITableViewController 中失败。

我通过将父 UIViewController 的 navigationController 实例作为名为 parentNavigationController 的属性传递给 UITableViewController 解决了这个问题,我调用了

[self.parentNavigationController pushViewController:viewController animated:YES];

相反。

解决方案还不错,但我认为它有些混乱,我想知道是否有更多的清除解决方案。

朋友们,在这种情况下你是如何编程的?

我认为两个视图控制器的父子视图关系很混乱,首先。如果我在一个视图控制器中管理两个视图会更好吗?如果这样,UITableViewController 的视图属性可以不是表格视图? (并且该视图具有表视图作为子视图)

提前感谢您的支持。

【问题讨论】:

【参考方案1】:

其实概念就是将视图控制器推送到导航控制器的导航栈UIViewControllers 只能呈现模态视图控制器,不能推送视图控制器。因此,向 self(这是一个 UIViewController)发送 pushViewController 消息是错误的。您可以使用[self.navigationController pushViewController:anotherViewController]; 推送视图控制器

【讨论】:

对不起,[self pushViewController:viewController] 是我的错误,但我想知道如何将视图控制器推送到父视图控制器(父表示,视图之间,而不是视图控制器)视图控制器,而不将导航控制器作为属性传递.或者我想知道有没有更明确的方法。 @moon6pence,您只能使用导航控制器来推送视图控制器【参考方案2】:

UITableViewController 控制器中使用self.navigationController 而不是self

[self.navigationController pushViewController:viewController animated:YES];

【讨论】:

对不起,[self pushViewController:viewController] 是我的错误,但我想知道如何将视图控制器推送到父视图控制器(父表示,视图之间,而不是视图控制器)视图控制器,而不将导航控制器作为属性传递.或者我想知道有没有更明确的方法。

以上是关于如何设置 subview-viewController 的 navigationController 属性?的主要内容,如果未能解决你的问题,请参考以下文章

JTable 如何使用 TableModel设置表头

如何设置div铺满

如何进入电脑BIOS设置?

如何设置窗口在最前面?

自己购买的域名如何设置子域名,如何设置访问多个项目,万网

outlook如何设置自动回复