如何获取对子视图的 rootViewController 的引用?
Posted
技术标签:
【中文标题】如何获取对子视图的 rootViewController 的引用?【英文标题】:How do I get a reference to a rootViewController to a sub-view? 【发布时间】:2010-04-16 20:47:34 【问题描述】:针对我之前的一个问题发布的答案引发了另一个问题;我正在从我的 rootViewController 调用一个新的视图控制器“RuleBuilder”。 rootViewController 持有对联系人数组的引用。如何在 RuleBuilder 中获得对该数组的引用?我尝试添加
UITableViewController *rootViewController;
...
@property (nonatomic, retain) UITableViewController *rootViewController;
到 RuleBuilder.h,然后
@synthesize rootViewController;
在 RuleBuilder.m 中。当我从 rootViewController 实例化并推送 RuleBuilder 时,我会这样做:
ruleBuilder.rootViewController = self;
但是当我尝试这个时
[rootViewController.contacts addObject:newContact];
在 RuleBuilder 中,我得到一个编译器错误,其结果是“在非结构的东西中请求‘联系人’”(或非常相似;我还没有实现这个确切的 sn-p 代码,但我尝试了不到一小时前的相同方法,用于我从未能够工作的几个不同的参考)。
再次感谢您的帮助。
【问题讨论】:
【参考方案1】:您已将 rootViewController 属性声明为 UITableViewController(它没有“联系人”属性)。
很可能,您的根视图控制器是 UITableViewController 的子类。如果你调用了那个子类 RootViewController,那么 RuleBuilder 中的 rootViewController 属性应该被声明为
RootViewController *rootViewController
【讨论】:
就是这样。感谢您抓到。以上是关于如何获取对子视图的 rootViewController 的引用?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用自动布局对子视图进行编程以占用其父视图宽度的 50% 但保持恒定高度?
如何将 UIViewController 作为子视图添加到 UIViewController(RootViewController)?