[英]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.