Ios 我想我在分配segmentcontrol时犯了一些错误。我收到一个错误[无法识别的选择器发送到实例]

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

像这样实现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.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];