Ios 如何在变量中存储按钮标记?
我有5个代表城市的按钮,我通过Ios 如何在变量中存储按钮标记?,ios,swift,xcode,Ios,Swift,Xcode,我有5个代表城市的按钮,我通过属性检查器为它们分配了标记,如下所示,城市为0,…..城市为4 有没有办法将这些标签存储到变量cityTag中,并确保在保存时如果没有按下任何按钮,我可以发送消息“请选择一个城市” 我创建了一个带有多个按钮的操作,但我不知道如何创建变量并将标记分配给它。因为您是通过属性检查器添加标记的,所以您可以通过sender.tag属性访问点击按钮的标记 最初创建一个NSMutableArray(它将保存所有按下按钮的标签),但在开始时显然是空的!您可以使用iAction中的s
属性检查器为它们分配了标记,如下所示,城市为0,…..城市为4
有没有办法将这些标签存储到变量cityTag
中,并确保在保存时如果没有按下任何按钮,我可以发送消息“请选择一个城市”
我创建了一个带有多个按钮的操作
,但我不知道如何创建变量
并将标记
分配给它。因为您是通过属性检查器添加标记的,所以您可以通过sender.tag
属性访问点击按钮的标记
最初创建一个NSMutableArray
(它将保存所有按下按钮的标签),但在开始时显然是空的!您可以使用iAction
中的sender.tag
属性访问标记。如果您的NSMutableArray
在尝试保存时不包含标记,则可以显示警报。初始化citytag=-1
。当您按下按钮时更改citytag的值,如citytag=sender.tag
,并检查是否citytag==-1
,然后发送一条消息请选择一个城市
否则所选城市为###
为提高代码的可读性,您可以为该情况定义一个枚举
,表示名称和名称标签以及:
例如:
enum City: Int {
case .cityA,
case .cityB,
case .cityC
}
您可以将它们存储在数组中
:
var cities: [City] = []
要设置一个城市:
if let cityA: City = City(rawValue: button.tag) {
cities.append(cityA)
}
要读取Int
值:
let rawValue: Int = cityA.rawValue
您可以尝试以下方法:
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
。我正在尝试将标记值存储在模型中。cities变量的值是否可以存储在核心数据中integer类型的属性中。您可以使用NSNumber
类型的私有属性保存原始值,并在CoreData
模型上编写扩展以映射通过他的getter和setter将该值传递给City
enum。