我以前构建过if-else语句,以使UIButtons充当切换,但这组代码似乎更具挑战性。我现在有两个独立的IBActions,一个叫open,另一个叫close。我想让它成为一个通过IBAction语句进行切换的if-else。这是两个IBActions的代码。
- (IBAction)actionOpen:(id)sender {
[self.flatDatePicker show];
}
- (IBAction)actionClose:(id)sender {
[self.flatDatePicker dismiss];
}发布于 2013-08-08 15:20:48
设置一个财产之类的,像这样.
// 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上使用一个属性来告诉您它是否可见,而不是其他属性。
发布于 2013-08-08 15:27:52
您不必为此创建自己的属性,平面选择器已经定义为:
@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];
}
}发布于 2013-08-08 15:21:01
在标头中为BOOL创建datePickerShowing类型
@property (nonatomic,assign) BOOL datePickerShowing;将其合成到您的.m文件中
@synthesize datePickerShowing;在init方法中将此设置为NO。datePickerShowing = NO;
在IBAction中:
if (datePickerShowing) {
[flatDatePicker dismiss];
datePickerShowing = NO;
} else {
[flatDatePicker show];
datePickerShowing = YES;
}https://stackoverflow.com/questions/18129788
复制相似问题