大家,
我无法在旧的Objective c应用中获得分段控件来激活或停用其他按钮。
到目前为止,我尝试了以下内容: 我已将按钮和SegmentedControl链接到相同的IBAction。 SegmentedControl - >已发送事件: - >价值变化 - >文件所有者: clearHighScore: 按钮 - >已发送事件: - > Touch Up Inside - >文件所有者 clearHighScore:
HighScoreViewController.m:
#import "HighScoreViewController.h"
@synthesize segmentedControl;
- (IBAction)clearHighScore:(id)sender {
if (self.segmentedControl.selectedSegmentIndex == 0) {}
else if (self.segmentedControl.selectedSegmentIndex == 1) {
deletes.A.table;
}
}
HighScoreViewController.m:
#import <UIKit/UIKit.h>
#import <AVFoundation/AVFoundation.h>
- (IBAction)clearHighScore:(id)sender;
@property (weak, nonatomic) IBOutlet UISegmentedControl *segmentedControl;
我还尝试将SegmentedControl链接到HighScoreViewController.m中的不同IBAction :(我知道它将是reduntand)
- (IBAction)activateClearHighScoreButton:(id)sender {
switch (self.segmentedControl.selectedSegmentIndex) {
case 0:
self.segmentedControl.selectedSegmentIndex = 0;
break;
case 1:
self.segmentedControl.selectedSegmentIndex = 1;
break;
default:self.segmentedControl.selectedSegmentIndex = 0;
break;
}
}
- (IBAction)clearHighScore:(id)sender {
if (self.segmentedControl.selectedSegmentIndex == 0) {}
else if (self.segmentedControl.selectedSegmentIndex == 1) {
deletes.A.table;
}
}
我想我错过了转移到(IBAction)clearHighScore 的价值转移 但我不知道如何解决这个问题。
(这样做的原因是有一个不可见的按钮,删除数据,但只有点击不可见的开关才可点击/激活。 或者,我想通过单击按钮提示密码,之后数据将被删除。 但是,我更不知道如何实现这一点。)
提前致谢
答案 0 :(得分:1)
您需要按照以下方式进行设置。
clearButton
。 segmentedControl
Touch Up Inside
连接到clearHighScore
valueChanged
连接到activateClearHighScoreButton
当您点击分段控件时,此按钮现在将被启用/禁用。
@property (weak, nonatomic) IBOutlet UISegmentedControl *segmentedControl;
@property (weak, nonatomic) IBOutlet UIButton *clearButton;
- (IBAction)clearHighScore:(id)sender {
if (self.segmentedControl.selectedSegmentIndex == 0) {}
else if (self.segmentedControl.selectedSegmentIndex == 1) {
deletes.A.table;
}
}
- (IBAction)activateClearHighScoreButton:(id)sender {
switch (self.segmentedControl.selectedSegmentIndex) {
case 0:
_clearButton.enabled = NO;
break;
case 1:
_clearButton.enabled = YES;
break;
default:
break;
}
}