2016-12-06 27 views
1

我有5個按鈕代表城市,我已經通過Attribute Inspector分配給他們tags如下,CityA as 0,.......CityE as 4如何將按鈕標籤存儲在變量中?

有沒有一種方法,我可以將這些標記存儲到一個變量cityTag並確保如果在保存按沒有按鈕的,我可以發送消息"Please select a city"

我創建了多個按鈕的action,但我不知道如何創建一個variable並將它分配給tags

+0

你可以使用'NSDictionary'。 – ColdSteel

回答

1

由於您是通過屬性檢查器添加標籤,您可以通過sender.tag屬性訪問輕擊按鈕的標籤!

最初創建NSMutableArray(將保存按下所有按鈕的標籤),但顯然會在一開始空!您可以使用IBAction中的sender.tag屬性訪問該標籤。如果您在嘗試保存時NSMutableArray未包含標籤,則可以顯示警報。

0

初始化citytag = -1。更改citytag的價值,當你按下一個按鈕,像citytag = sender.tag並保持如果citytag == -1支票,然後將消息發送please select a city其他selected city is ###

2

爲了更好的可讀性的代碼yourcould定義爲代表的名稱和標記,以及這種情況下的Enum

例如:

enum City: Int { 
    case .cityA, 
    case .cityB, 
    case .cityC 
} 

您可以將它們存儲在一個Array

var cities: [City] = [] 

要設置城市:

if let cityA: City = City(rawValue: button.tag) { 
    cities.append(cityA) 
} 

要讀取Int值:

let rawValue: Int = cityA.rawValue 
+0

我試圖存儲標籤值model.Can城市變量的值被存儲在覈心數據的整數類型的屬性。 – leaner122

+0

你可以有從類型'NSNumber'持有的原始值的私人財產,寫上你'CoreData'模型的擴展,通過自己的getter和setter該值到'City'枚舉映射。 –

0

你可以試試這個:

func checkbuttons -> BOOL { 

    var countBtn = 0 

    for view in self.view.subviews as [UIView] 
    { 
     if let btn = view as? UIButton 
     { 
     if btn.isSelected 
     { 
      countBtn = countBtn + 1 
     } 
     } 
    } 
    if(countBtn > 0) 
    { 
     return true 
    } 
    else 
    { 
     return false 
    } 
} 

在返回的基礎上,你就會知道按鈕選擇或不。 希望它能幫助你

相關問題