Objective c 要从rightbarbutton项转到下一个视图吗

Objective c 要从rightbarbutton项转到下一个视图吗,objective-c,iphone,Objective C,Iphone,我用这段代码获得导航栏右侧的三个按钮,按钮是可见的,但在这旁边我想从这三个按钮的图像、文本、视频转到下一个视图 NSArray *segmentTextContent = [NSArray arrayWithObjects:@"Image",@"Text",@"Video",nil]; UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:segmentTextConte

我用这段代码获得导航栏右侧的三个按钮,按钮是可见的,但在这旁边我想从这三个按钮的图像、文本、视频转到下一个视图

NSArray *segmentTextContent = [NSArray arrayWithObjects:@"Image",@"Text",@"Video",nil];     
    UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:segmentTextContent];

        segmentedControl.frame = CGRectMake(13, 20, 150, kCustomButtonHeight);
        segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;
        segmentedControl.momentary = YES;

        defaultTintColor = [segmentedControl.tintColor retain]; // keep   track of this for later

        UIBarButtonItem *segmentBarItem = [[UIBarButtonItem alloc] initWithCustomView:segmentedControl];


    self.navigationItem.rightBarButtonItem = segmentBarItem;

    if(segmentedControl.selectedSegmentIndex=0)
    {

    [segmentedControl addTarget:self action:@selector(segmentAction:) forControlEvents:UIControlEventValueChanged];
    }
    else if(segmentedControl.selectedSegmentIndex==1)
    {

    [segmentedControl addTarget:self action:@selector(segmentAction1:) forControlEvents:UIControlEventValueChanged];
    }   
else if(segmentedControl.selectedSegmentIndex==2)
    {

    [segmentedControl addTarget:self action:@selector(segmentAction2:) forControlEvents:UIControlEventValueChanged];
    }       
            [segmentBarItem release];

            //[modalBarButtonItem release];     
 }
return self;
}

我认为你对行动和目标的运作方式有一个根本性的误解。创建时无法检查selectedSegmentIndex。它将始终为0。您必须只添加一次目标,然后在responder方法中,检查selectedSegmentIndex并从那里开始操作:

    [segmentedControl addTarget:self action:@selector(segmentAction:) forControlEvent:UIControlEventTouchUpInside];

//...

- (void) segmentAction:(UISegmentedControl *)source {
  switch (source.selectedSegmentIndex) {
    case 0:
      [self segmentAction0:source];
      break;
    case 1:
      [self segmentAction1:source];
      break;
    case 2:
      [self segmentAction2:source];
      break;
  }
}