目标C:可能不是(问题)
问题描述:
回应我有两个的UINavigationController在appdelegate.h目标C:可能不是(问题)
{
UINavigationController *leftView;
UINavigationController *rightView;
UIWindow *window;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet UINavigationController *leftView;
@property (nonatomic, retain) IBOutlet UINavigationController *rightView;
appdelegate.m
@synthesize leftView;
@synthesize rightView;
然后在不同的类
测试。 m
#import "appdelegate.h"
if I这样做:
[self leftView] pushViewController...; //(Everything is ok)
,但如果我将其更改为:
[self rightView] pushViewControll...; //it complains about ViewController may not respond to -rightView
答
你的代码看起来不错;看起来不正确的是你包括AppDelegate。如果代码在AppDelegate.m中,那么编译器可能没有任何抱怨。
相反,您已经为每个定义了@property行,但是这是在AppDelegate.h中,而不是test.h - 但是您在test.m中使用它们。这可能是问题的根源。
有趣的是,代码实际运行吗?
答
我要大胆地猜测:你有没有宣布合成了财产rightView
,或者至少提供自己手动吸?
答
这听起来像你声明@property或称为leftView的方法返回leftView伊娃,但你忘了对rightView做同样的事情。错误是告诉你self
不响应选择器rightView
。
是的代码运行。令我困惑的是,它适用于leftView而不是rightView,它们的设置方式完全相同。 – Arcadian 2010-11-03 01:03:10
我可以从test.m中获得对主窗口的引用吗?如果是这样,我可以得到第二个子视图/导航控制器的引用吗? – Arcadian 2010-11-03 01:05:00
也许我可以做这样的事rightView = [self window] objectAtIndex:1] 然后用它来做[self rightView] pushViewController ... – Arcadian 2010-11-03 01:06:32