2010-11-03 36 views
0

迴應我有兩個的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 

回答

1

你的代碼看起來不錯;看起來不正確的是你包括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

1

我要大膽地猜測:你有沒有宣佈合成了財產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

0

這聽起來像你聲明@property或稱爲leftView的方法返回leftView伊娃,但你忘了對rightView做同樣的事情。錯誤是告訴你self不響應選擇器rightView