目标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中使用它们。这可能是问题的根源。

有趣的是,代码实际运行吗?

+0

是的代码运行。令我困惑的是,它适用于leftView而不是rightView,它们的设置方式完全相同。 – Arcadian 2010-11-03 01:03:10

+0

我可以从test.m中获得对主窗口的引用吗?如果是这样,我可以得到第二个子视图/导航控制器的引用吗? – Arcadian 2010-11-03 01:05:00

+0

也许我可以做这样的事rightView = [self window] objectAtIndex:1] 然后用它来做[self rightView] pushViewController ... – Arcadian 2010-11-03 01:06:32

我要大胆地猜测:你有没有宣布合成了财产rightView,或者至少提供自己手动吸?

+0

我对两者都做了同样的事情。 – Arcadian 2010-11-03 00:53:41

+0

@property(nonatomic,retain)IBOutlet UINavigationController * leftController; @property(nonatomic,retain)IBOutlet UINavigationController * rightView; – Arcadian 2010-11-03 00:54:06

+0

* leftController是* leftView – Arcadian 2010-11-03 00:55:21

这听起来像你声明@property或称为leftView的方法返回leftView伊娃,但你忘了对rightView做同样的事情。错误是告诉你self不响应选择器rightView