2014-02-12 29 views
0

我有一個觀點:「MyView的」,在此視圖中標題爲3個按鈕:「myButton1」,「myButton2」和3 ...在MyView的,NSString的一個屬性:「 MyString的」。我該如何做到這一點:當我按下這個按鈕,我想改變按鈕標題屬性(「button1..2,3」)中的myString。目的C,改變的NSString財產使用按鈕挖掘

+0

獲取按鈕的操作,然後設置標題。 – rocky

回答

0

非常簡單

-(void)viewDidLoad{ 

[super viewDidLoad]; 

UIButton *btn1=[UIButton buttonWithType:UIButtonTypeCustom]; 
[btn1 addTarget:self action:@selector(buttonTapped:) forControlEvents:UIControlEventTouchUpInside]; 

UIButton *btn2=[UIButton buttonWithType:UIButtonTypeCustom]; 
[btn2 addTarget:self action:@selector(buttonTapped:) forControlEvents:UIControlEventTouchUpInside]; 

UIButton *btn3=[UIButton buttonWithType:UIButtonTypeCustom]; 
[btn3 addTarget:self action:@selector(buttonTapped:) forControlEvents:UIControlEventTouchUpInside]; 


} 
-(void)buttonTapped:(UIButton*)sender{ 

[sender setTitle:myString forState:UIControlStateNormal]; 
} 
0

我假定myView或者是UIViewController的(即通過訪問myViewController.view)的視圖,或者它是它的子視圖/ subsubview等


如果之一您正在使用Interface Builder來創建視圖控制器(例如在故事板中),您可以打開助理編輯器

(點擊右上角的圖標assistant editor

並拖動每個按鈕一行的viewController.h文件(按住Ctrl鍵並拖動到源代碼窗口下)。

Xcode screenshot

選擇「操作」作爲連接類型,並給每個方法像buttoniTapped的唯一名稱。在編輯器中打開viewController.c文件。在那裏您應該找到新創建的操作方法。現在,讓這些方法改變你的字符串:(這個如果你在myViewController創建屬性myView爲包含三個按鈕的觀點只會工作)

- (IBAction)button1Tapped:(id)sender { 
    self.myView.myString = @"Button 1 was tapped."; 
} 

- (IBAction)button2Tapped:(id)sender { 
    self.myView.myString = @"Button 2 was tapped."; 
} 

- (IBAction)button3Tapped:(id)sender { 
    self.myView.myString = @"Button 3 was tapped."; 
} 


一般來說,我認爲這是一個更好的主意是讓myString成爲視圖控制器的一個屬性而不是視圖,因爲它使事情變得更加簡單,並將數據從視圖中分離出來。