mst*_*ace 13 objective-c uisegmentedcontrol ios
我有一个UISegmentedControl包含三个部分的按钮.在ViewController.m这工作得很好 - 按下按钮激发正确的方法.
我有另一个单独的UIButton,当它被按下时,它需要首先检查状态UISegmentedControl(查看当前按下哪个按钮),然后根据该段值触发方法.
这是我的代码UIButton.按钮本身正在工作,但我似乎无法弄清楚如何获取该段的当前值UISegmentedControl.
非常感谢这里的任何帮助.我是新来的OBJ-C.我知道如何做到这一点VisualBasic,因此我需要知道'为什么',所以更加详细的答案将是最受欢迎的.谢谢.
- (IBAction)decodeButton:(id)sender {
UISegmentedControl *segment = [UISegmentedControl alloc]; // THIS DOES NOT WORK.
if (segment.selectedSegmentIndex == 0) {
decode(textToDecode);
} else if(segment.selectedSegmentIndex == 1) {
decode1(textToDecode);
} else if(segment.selectedSegmentIndex == 2) {
decode2(textToDecode);
}
}
Run Code Online (Sandbox Code Playgroud)
Sib*_*ota 19
这是在iOS中使用UISegmentedControl的教程.
只需创建一个参考对象并将其正确连接到文件所有者.
IBOutlet UISegmentedControl *segmentedControl;
Run Code Online (Sandbox Code Playgroud)
然后设置属性
@property (strong, nonatomic) IBOutlet UISegmentedControl * segmentedControl;
Run Code Online (Sandbox Code Playgroud)
在.m文件中合成
@synthesize segmentedControl;
Run Code Online (Sandbox Code Playgroud)
现在您可以随时访问所选索引.
- (IBAction)decodeButton:(id)sender {
if (segmentedControl.selectedSegmentIndex == 0) {
decode(textToDecode);
} else if(segmentedControl.selectedSegmentIndex == 1) {
decode1(textToDecode);
} else if(segmentedControl.selectedSegmentIndex == 2) {
decode2(textToDecode);
}
}
Run Code Online (Sandbox Code Playgroud)
您的代码alloc每次UISegmentedControl在按钮按下动作。因此,请使用以下代码进行sUISegmentedControl创建及其操作。
SegmentChangeView=[[UISegmentedControl alloc]initWithItems:[NSArray arrayWithObjects:@"Segment1",@"Segment2",@"Segment3",nil]];
SegmentChangeView.frame=CGRectMake(5, 44, self.view.bounds.size.width-10, 33);
SegmentChangeView.selectedSegmentIndex=0;
SegmentChangeView.segmentedControlStyle=UISegmentedControlStyleBar;
SegmentChangeView.momentary = YES;
[SegmentChangeView setTintColor:[UIColor blackColor]];
NSDictionary *attributes =[NSDictionary dictionaryWithObjectsAndKeys:[UIFont fontWithName:@"Arial" size:13],UITextAttributeFont,nil];
[SegmentChangeView setTitleTextAttributes:attributes forState:UIControlStateNormal];
[SegmentChangeView addTarget:self action:@selector(SegmentChangeViewValueChanged:) forControlEvents:UIControlEventValueChanged];
SegmentChangeView.autoresizingMask=UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleBottomMargin;
[self.view addSubview:SegmentChangeView];
-(IBAction)SegmentChangeViewValueChanged:(UISegmentedControl *)SControl
{
if (SControl.selectedSegmentIndex==0)
{
decode(textToDecode);
}
else if (SControl.selectedSegmentIndex==1)
{
decode1(textToDecode);
}
else if (SControl.selectedSegmentIndex==2)
{
decode2(textToDecode);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
30082 次 |
| 最近记录: |