2011-09-07 64 views
0

使用IB創建的對象/控件是否可以從類方法訪問?從類方法訪問IB對象/控制

@Nekto:

@interface CopyController : UIViewController 
{ 
    UIActivityIndicatorView *myActivity; 
} 

@property (nonatomic, retain) IBOutlet UIActivityIndicatorView *myActivity; 
+(void) activityIndicator:(BOOL)flag; 

@end 

在.M此實現將不會被允許,錯誤是 「實例variable'myActivety」類方法訪問」。

+(void)activityIndicator:(BOOL)flag 
{ 
    if (flag) 
     [myActivity startAnimating]; 
    else 
     [myActivity stopAnimating]; 
} 
+1

請花更多的時間與問這樣的問題之前,蘋果公司提供的文檔。這是與IB合作的基礎知識,如果你問這個問題,那麼在繼續進行項目之前,你需要繼續閱讀以真正學習該工具。 –

+0

@Phil他的問題是關於範圍,而不是如何連接插座。 –

+0

@掘地掘金隊:謝謝。 Phillip Regan:如果你感到滿意,可以刪除低年級! – user523234

回答

0

您可以到插座連接到第一個響應者,而不是文件的所有者來實現這一點,但我不認爲你可以訪問它來自類方法中,因爲您的IBOutlet屬性將成爲實例級變量。

發現鏈接行動的多個第一反應類似here.

1

是的,他們是可訪問的。

您應該添加@property IBOutlet ib_object_class *ib_object_name;,在IB中打開該對象設置,並通過在下拉菜單中選擇ib_object_name將參考插口設置爲File's Owner

完整的解釋可以發現,例如,在這裏:Creating and Connecting an Outlet

+0

我知道這個過程,我的問題是關於它是否可以在類方法中訪問。那是我遇到問題的地方。當我實現即時方法或私有方法時,我可以訪問這些IB對象,但在類方法中,它不可用。 – user523234

+0

然後正確描述你的問題,發佈代碼,描述錯誤。我回答了你目前的問題:是的,你可以。 – Nekto

+1

請參閱我對原始問題的編輯。我無法將代碼粘貼到此評論中。 – user523234