无法从相关的 View Controller 访问 appdelegate 实例变量
Posted
技术标签:
【中文标题】无法从相关的 View Controller 访问 appdelegate 实例变量【英文标题】:Cannot access appdelegate instance variable from related View Controller 【发布时间】:2011-09-05 11:17:37 【问题描述】:我的应用名称是 PropertiesSearch,因此该项目包含以下文件:
PropertiesSearchAppDelegate.h
PropertiesSearchAppDelegate.m
PropertiesSearchViewController.h
PropertiesSearchViewController.m
我在 PropertiesSearchAppDelegate.h 中声明了一个实例变量 (ListingNav),如下所示:
#import <UIKit/UIKit.h>
@class PropertiesSearchViewController;
@interface PropertiesSearchAppDelegate : NSObject <UIApplicationDelegate>
UINavigationController *ListingNav;
@property (nonatomic, retain) UINavigationController *ListingNav;
@end
在 PropertiesSearchAppDelegate.m 中,我添加了
@synthesize ListingNav;
现在我正在尝试从 PropertiesSearchViewController.m 访问 ListingNav,如下所示:
PropertiesSearchAppDelegate *appDelegate = (PropertiesSearchAppDelegate *)[[UIApplication sharedApplication] delegate];
// Then here I can easily do appDelegate.ListingNav etc...
但调试器正在显示:
使用未声明的标识符PropertiesSearchAppDelegate
我应该在 PropertiesSearchViewController.h 中导入 PropertiesSearchAppDelegate.h 吗?
提前感谢您的帮助
斯蒂芬
【问题讨论】:
【参考方案1】:您必须在 PropertiesSearchViewController.h 中导入 PropertiesSearchAppDelegate.h。
要让一个类知道另一个类,您应该导入该类 或添加 @class 指令。添加 @class 指令 只是让类知道存在另一个类。在您的情况下,您应该在尝试访问该类的成员时导入 PropertiesSearchAppDelegate。
【讨论】:
以上是关于无法从相关的 View Controller 访问 appdelegate 实例变量的主要内容,如果未能解决你的问题,请参考以下文章
无法从Spring Controller访问Controller Annotation数据
为 iOS 应用创建登录页面:“View Controller”无法访问,因为它没有入口点,也没有运行时访问的标识符
从 AppDelegate 访问 View Controller 的属性
无法在 View Controller 和 Model 之间传递数据
使用nuget包下载Entity Framework6.0无法使用模型类与数据库上下文自动生成controller与view