2012-10-30 81 views
0

我想以編程方式更改UIButton,這有可能嗎? 沒有任何交互。以編程方式獲取UIButton

我能以某種方式獲取視圖中的對象嗎?如果我可以得到它們,我可以遍歷它們並獲得我想要的UIButton並將其更改爲我想要的。

+2

所有的視圖中的對象可以使用'view.subviews'它與在該視圖中的所有對象陣列,迭代陣列獲得烏爾按鈕,並相應地使用.. – vishy

+0

是,我使用的獲得self.subviews在另一個視圖中對許多按鈕進行標記的情況下進行迭代。 – hub

回答

3

是的,這是可能的。

如果您正在處理動態數量的按鈕,那麼使用標籤就是您需要的。 當插入UIButton(通過Interface Builder或以編程方式)時,可以爲其分配一個標籤。如在,view.tag = 6。這意味着您可以從超級視圖中提取特定按鈕的實例。

UIButton* btn = [UIButton alloc] initWithFrame:...]; 
.... 
[self.view addSubview:btn]; 

額外的步驟分配一個標籤(你如何保持跟蹤你的標籤是由你):

在實踐中,一般會通過添加按鈕。

btn.tag = 44; 

爲了再次訪問它,我可以從我的觀點中提取它。

UIButton* btn = (UIButton*)[self.view viewWithTag:44]; 

這產生了與我最初創建的實例相同的實例。

如果你想替換它,你只需刪除舊的,然後創建+添加新的。

[btn removeFromSuperview]; 
UIButton* btn2 = [UIButton alloc] initWithFrame:...]; 
... 
[self.view addSubview:btn2]; 
+0

完美!標記按鈕工作得很好。 – hub

0

您可以使用引用插座選項卡部分將您的按鈕從xib鏈接到它的控制器。你將會有一個參考你的按鈕,所以你不必遍歷所有的子視圖。只需選擇你的xib並打開側面的實用菜單。選擇您的按鈕,然後單擊實用程序菜單上的連接檢查器。單擊並將「新引用插座」旁邊的圓圈拖到控制器的.h文件中。