2011-03-08 30 views
0

類1 {如何訪問其他類的代理並更新數據

class1Array;

pickerview;

pickerview.datasource =自我;(這裏class1Array)

pickerivew.delegate =自我;

}

類2 {

這裏離我怎樣才能得到的Class1 pickerview的代表和更新Class1Array。

之後,當從class2彈出到class1時,pickerview必須顯示來自class2的新數組。

shouldnot使用的appdelegate

}

+0

到底是如何,你聲明你的陣列和pickerview訪問數組?看起來很奇怪。另外,爲什麼不把它們變成實例變量,你可以在所有類中訪問它們? – 2011-03-08 14:27:33

+0

第1類是你的根對象嗎?或者,類2的實例變量是否擁有類1的實例變量? – 2011-03-08 14:37:15

回答

1

在類1定義陣列屬性以及選擇器視圖:

@property (nonatomic, retain) NSArray* array; 
@property (nonatomic, retain) UIPickerView* pickerView; 

對於1類的任何實例,那麼你可以訪問該陣列和pickerview通過

instance = [[Class1 alloc] init]; 
instance.array = ... 
instance.pickerview = ... 

編輯:

使用靜態類變量的樣本:

@interface Class1 : NSObject { 
} 
+ (NSArray*)getArray; 
@end 

@implementation Class1 
static NSArray* array = nil; 

+ (NSArray*)getArray { 
    if (! array) { 
     array = [[NSArray alloc] initWithObjects:@"Your", @"data", @"goes", @"here", nil]; 
    } 
    return array; 
} 
@end 

然後,您可以使用在任何地方

[Class1 getArray] 
+0

沒有分配class1對象我們如何訪問。這意味着如何將class1的整個對象(它是pushee)獲取到class1所推送的class2。 – rithik 2011-03-08 14:53:40

+0

那麼,你將不得不聲明數組和pickerview作爲class1中的靜態全局變量,並添加一個類方法來訪問它們。我不得不說,我不完全瞭解你的問題。你爲什麼不想分配一個class1的實例? – hennes 2011-03-08 15:21:00

+0

像[[uiapplication sharedapplication] delegate]那麼我們可以得到伊娃的appdelegate權。如果我可以但你的第二個答案是非常令人印象深刻的,請給我一些關於該代碼示例 – rithik 2011-03-08 15:24:15