Obj C ui 分段控件到 de/activate 一个按钮
Obj C ui segmented control to de/activate a button
各位,
我无法在较旧的 Objective c 应用程序中使用分段控件来激活或停用另一个按钮。
到目前为止我已经尝试了以下方法:
我已 link 将按钮和 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;
我还尝试 link 将 SegmentedControl 更改为 HighScoreViewController.m 中的另一个 IBAction:(我知道它会被冗余)
- (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
但我不知道如何解决这个问题。
(这样做的原因是有一个删除数据的不可见按钮,但只有 clickable/active 如果单击不可见开关。
或者,我希望通过单击按钮提示输入密码,之后数据将被删除。
但是,我更不知道如何实现它。)
提前致谢
您需要进行如下设置
- 将您的按钮连接到插座
clearButton
。
- 将您的 segmentedControl 连接到插座
segmentedControl
- 将按钮
Touch Up Inside
连接到 clearHighScore
- 将 segmentedControl 的
valueChanged
连接到 activateClearHighScoreButton
当您点击分段控件时,按钮现在将 enabled/disabled。
@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;
}
}
各位,
我无法在较旧的 Objective c 应用程序中使用分段控件来激活或停用另一个按钮。
到目前为止我已经尝试了以下方法: 我已 link 将按钮和 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;
我还尝试 link 将 SegmentedControl 更改为 HighScoreViewController.m 中的另一个 IBAction:(我知道它会被冗余)
- (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 但我不知道如何解决这个问题。
(这样做的原因是有一个删除数据的不可见按钮,但只有 clickable/active 如果单击不可见开关。 或者,我希望通过单击按钮提示输入密码,之后数据将被删除。 但是,我更不知道如何实现它。)
提前致谢
您需要进行如下设置
- 将您的按钮连接到插座
clearButton
。 - 将您的 segmentedControl 连接到插座
segmentedControl
- 将按钮
Touch Up Inside
连接到clearHighScore
- 将 segmentedControl 的
valueChanged
连接到activateClearHighScoreButton
当您点击分段控件时,按钮现在将 enabled/disabled。
@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;
}
}