2014-02-12 28 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成为视图控制器的一个属性而不是视图,因为它使事情变得更加简单,并将数据从视图中分离出来。