我有5个按钮代表城市,我已经通过Attribute Inspector
分配给他们tags
如下,CityA as 0,.......CityE as 4
。如何将按钮标签存储在变量中?
有没有一种方法,我可以将这些标记存储到一个变量cityTag
并确保如果在保存按没有按钮的,我可以发送消息"Please select a city"
我创建了多个按钮的action
,但我不知道如何创建一个variable
并将它分配给tags
。
我有5个按钮代表城市,我已经通过Attribute Inspector
分配给他们tags
如下,CityA as 0,.......CityE as 4
。如何将按钮标签存储在变量中?
有没有一种方法,我可以将这些标记存储到一个变量cityTag
并确保如果在保存按没有按钮的,我可以发送消息"Please select a city"
我创建了多个按钮的action
,但我不知道如何创建一个variable
并将它分配给tags
。
由于您是通过属性检查器添加标签,您可以通过sender.tag
属性访问轻击按钮的标签!
最初创建NSMutableArray
(将保存按下所有按钮的标签),但显然会在一开始空!您可以使用IBAction
中的sender.tag
属性访问该标签。如果您在尝试保存时NSMutableArray
未包含标签,则可以显示警报。
初始化citytag = -1
。更改citytag的价值,当你按下一个按钮,像citytag = sender.tag
并保持如果citytag == -1
支票,然后将消息发送please select a city
其他selected city is ###
为了更好的可读性的代码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
我试图存储标签值model.Can城市变量的值被存储在核心数据的整数类型的属性。 – leaner122
你可以有从类型'NSNumber'持有的原始值的私人财产,写上你'CoreData'模型的扩展,通过自己的getter和setter该值到'City'枚举映射。 –
你可以试试这个:
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
}
}
在返回的基础上,你就会知道按钮选择或不。 希望它能帮助你
你可以使用'NSDictionary'。 – ColdSteel