簡體   English   中英

如果IBAction中的其他語句-iOS

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM