[英]If Else Statement in IBAction - iOS
我已经构造了if-else
语句来使UIButton之前充当切换按钮,但是这组代码似乎更具挑战性。 我现在有2个独立的IBAction,一个称为打开,另一个称为关闭。 我想使它成为一个通过if-else
语句进行切换的IBAction。 这是两个IBAction的代码。
- (IBAction)actionOpen:(id)sender {
[self.flatDatePicker show];
}
- (IBAction)actionClose:(id)sender {
[self.flatDatePicker dismiss];
}
设置属性或类似的东西...
// in the private extension
@property (nonatomic) BOOL flatDatePickerOpen;
然后做这样的事情...
- (IBAction)toggleFlatDatePicker {
if (self.flatDatPickerOpen) {
[self.flatDatePicker dismiss];
self.flatDatePickerOpen = NO;
} else {
[self.flatDatePicker show];
self.flatDatePickerOpen = YES;
}
}
您也不必指定操作的发送者部分。 如果您不使用它,则不需要它。
或者,在flatDatePicker上使用一个属性(该属性会告诉您该属性是否可见),而不是其他属性。
您不必为此创建自己的属性,平面选择器已经定义为:
@property(nonatomic,readonly) BOOL isOpen; // read only property, indicate in datepicker is open.
所以...
- (IBAction)toggleFlatDatePicker {
if (self.flatDatePicker.isOpen) {
[self.flatDatePicker dismiss];
}else{
[self.flatDatePicker show];
}
}
在标题中为datePickerShowing
创建BOOL
类型
@property (nonatomic,assign) BOOL datePickerShowing;
将其合成到您的.m文件中
@synthesize datePickerShowing;
在您的init方法中将此设置为NO。 datePickerShowing = NO;
在您的IBAction中:
if (datePickerShowing) {
[flatDatePicker dismiss];
datePickerShowing = NO;
} else {
[flatDatePicker show];
datePickerShowing = YES;
}
我可以想象self.flatDatePicker
是一个UIDatePicker
对象,该对象继承自UIView
。 不需要单独的状态标志,只需检查UIView.hidden
属性:
- (IBAction)actionToggle:(id)sender {
if (self.flatDatePicker.hidden)
[self.flatDatePicker show];
else
[self.flatDatePicker dismiss];
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.