Ios 我想我在分配segmentcontrol时犯了一些错误。我收到一个错误[无法识别的选择器发送到实例]
像这样实现segtap方法Ios 我想我在分配segmentcontrol时犯了一些错误。我收到一个错误[无法识别的选择器发送到实例],ios,Ios,像这样实现segtap方法 Segcontrol = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObjects:@"Mind", @"Munches", nil]]; Segcontrol.frame=CGRectMake(CGRectGetWidth(self.view.frame)/4.5, self.view.frame.size.height/4, CGRectGetWidth(self.vie
Segcontrol = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObjects:@"Mind", @"Munches", nil]];
Segcontrol.frame=CGRectMake(CGRectGetWidth(self.view.frame)/4.5, self.view.frame.size.height/4, CGRectGetWidth(self.view.frame)/1.8, CGRectGetHeight(self.view.frame)/12);
[Segcontrol addTarget:Segcontrol action:@selector(segtap:) forControlEvents:UIControlEventValueChanged];
[Segcontrol setSelectedSegmentIndex:0];
[Segcontrol setTintColor:[UIColor blueColor]];
Segcontrol.layer.cornerRadius=5;
[self.view addSubview:Segcontrol];
-(void)segtap:(id)sender{
if (Segcontrol.selectedSegmentIndex==0) {
self.view.backgroundColor=[UIColor blueColor];
}else if (Segcontrol.selectedSegmentIndex==1){
self.view.backgroundColor=[UIColor redColor];
}
}
我认为您可能忘记了将参数传递给该方法。您正在将
SegmentControl
对象Segcontrol
添加为段操作的目标。而不是将对象self
添加为目标。更改下面的代码,你就可以开始了
-(void)segtap:(id)sender
{
switch (Segcontrol.selectedSegmentIndex)
{
case 0:
NSLog(@"Index 0 selected");
break;
case 1:
NSLog(@"Index 1 selected");
break;
}
}
显示你的segtap:method我认为这行代码正在破坏你的应用程序[Segcontrol addTarget:Segcontrol action:@selector(segtap:)forControlEvents:UIControlEventValueChanged];也许你忘了实现这些方法。不,实际上我实现了那个方法,也向我们显示了无法识别的选择器的全部错误。哪一个选择器和哪一个实例。不,它仍然在崩溃
[Segcontrol addTarget:self action:@selector(segtap:) forControlEvents:UIControlEventValueChanged];