如何将 UIButton 值存储在核心数据中?
Posted
技术标签:
【中文标题】如何将 UIButton 值存储在核心数据中?【英文标题】:How to store UIButton value in core data? 【发布时间】:2015-10-03 13:07:30 【问题描述】:如何在核心数据中存储UIButton
值。我有两个按钮,分别命名为 BloodGroup 和城市。
当用户点击任何按钮然后pickerview
出现在底部并且有取消和完成按钮。所以用户从UIPickerview
中选择值并点击完成按钮然后UIPickerview
消失并且该值显示在UIButton
。
需要回答两个问题。 我想将此值存储在核心数据中。 1)我们如何存储这个值?
第二个选项是如果我们可以将这个值存储在 uitextfield 中,那么这很容易。
2) 谁能告诉我如何将按钮中选定字段的数据传递给UITextField
?
import UIKit
class Bloodbank: UIViewController
@IBOutlet weak var Bloodgroup: UIButton!
@IBOutlet weak var City: UIButton!
@IBOutlet weak var pickerViewObj: UIPickerView!
@IBOutlet weak var subViewObj: UIView!
let fruitsArrayValues = ["A+","A-","B+","B-","AB+","AB-","O+","O-"]
let iPhoneModelArrayValues = ["Ahmedabad","Gandhinagar","Surat","Rajkot","Vadodara"]
override func viewDidLoad()
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
subViewObj.hidden = true
//delegate methods.
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int
return 1
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int
//dynamic delegate methods using pickerviewObj.tag
if pickerViewObj.tag == 0
return fruitsArrayValues.count
else
return iPhoneModelArrayValues.count
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String!
if pickerViewObj.tag == 0
return "\(fruitsArrayValues[row])" //its displyed to titleForRow.
else
return "\(iPhoneModelArrayValues[row])"
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int)
//valuesLbl.text = pickerDataValues[row]
@IBAction func selectItemsBtn(sender: AnyObject)
//first they set the tag in pickerviewObj.
subViewObj.hidden = false
switch sender.tag
case 0:
pickerViewObj.tag = 0
case 1:
pickerViewObj.tag = 1
default:
break;
pickerViewObj.reloadAllComponents()
@IBAction func cancelBtn(sender: AnyObject)
subViewObj.hidden = true
@IBAction func DoneBtn(sender: AnyObject)
if pickerViewObj.tag == 0
let selectedIndex = pickerViewObj.selectedRowInComponent(0)
Bloodgroup.setTitle(fruitsArrayValues[selectedIndex], forState: UIControlState.Normal)
else if pickerViewObj.tag == 1
let selectedIndex = pickerViewObj.selectedRowInComponent(0)
City.setTitle(iPhoneModelArrayValues[selectedIndex], forState: UIControlState.Normal)
subViewObj.hidden = true
override func didReceiveMemoryWarning()
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
【问题讨论】:
【参考方案1】:正如我所见,所选值只是一个字符串。您可以将字符串存储在核心数据中。
对于第二个问题:可以用当前的title方法获取按钮的title的值。见:https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIButton_Class/#//apple_ref/occ/instp/UIButton/currentTitle
顺便说一句,您是否考虑过使用 NSUserDefaults 来存储此值?这对你来说可能更容易。
【讨论】:
感谢您的回复先生,1)正如您所说,选择的值是字符串,所以在核心数据中保存血型和城市值,我应该从出口和操作中添加哪些内容作为核心数据属性。 . 2)我们是否应该将按钮值从 currenttitle 方法传递给第二个 textfeild.. 谢谢先生.. 等待您的宝贵回复.. 我猜您需要一个具有两个字符串属性、血型和城市的实体。但是 coredata 对于这个项目可能太难了,或者你的技能水平,userdefaults 就像这样简单:NSUserDefaults.standardUserDefaults().setObject(button.currentTitle, forKey: "bloodType"), and let storedBloodType = NSUserDefaults.standardUserDefaults( ).stringForKey("血型")。我不明白你的第二个问题。我看不到文本字段。 想象有一个名为“textfielddemo”的文本字段。因此,当用户选择值表单选择器视图时,它会出现在 textfielddemo 中。如果发生这种情况,那么文本字段的值很容易输入到核心数据中。我想要核心数据,因为在输入详细信息后,在 secondviewcontroller 中获取核心数据并使用它很有用。感谢 VIK 的回复,我再次等待您的回复。以上是关于如何将 UIButton 值存储在核心数据中?的主要内容,如果未能解决你的问题,请参考以下文章
我应该如何在核心数据中存储从 UISlider 读取的百分比值?