2012-10-28 91 views
0

我有一個帶有多個視圖的xib文件。他們的IBOutlet s被命名爲view1view2,view3等等,我想在循環中訪問它們。在Objective-C中可以這樣做嗎?如何通過生成的實例名稱訪問對象?

我知道在ActionScript中你可以生成一個像這樣的對象的名字:["view"+num]

回答

1

使用鍵值編碼。如果說假設我有view1 .. view 10,那麼我會這樣使用它;

for(int i=0 i< 10; i++){ 
    UIView *eachView = [self valueForKey:[NSString stringWithFormat:@"view%d", i]]; 
} 

我希望它適合你。

+0

這工作得很好。我也會提出這個建議。 –

+0

太棒了!它工作:))非常感謝! –

2

而不是命名它們,將它們分配標籤(0 ... 10),然後您可以使用viewWithTag:將它們拉出父視圖。

3

將它們放在IBOutletCollection中。這是一個數組,您可以在界面構建器中填充它並遍歷它。

0

另一種可以完成此操作的方法是使用NSDictionaryOfVariableBindings

NSArray *views = [NSDictionaryOfVariableBindings(view1, view2, view3) allObjects]; 
for (UIView *item in views) 
    do something with item;