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;
}
}