PropertiesViewController.swift에서 5 개의 UITextField 값을 가져오고 ConditionsViewController에서 8 개의 스위치를 가져 오려고합니다. 두 클래스 모두 TabController의 일부입니다. 사용자가 saveMeter()를 클릭하면 사용자가 CoreData에 입력 한 값을 삽입하려고합니다. 내 문제는 모든 CRUD 작업이있는 다른 클래스에서 두보기 모두에 액세스하려고 할 때입니다. Properties 또는 ConditionsViewController에서 저장 버튼을 누르면 텍스트를 입력하고 값을 입력해도 스위치 값이 반환되지 않습니다. 런타임에 다른 클래스의 UITextFields (첫 번째 클래스) 및 스위치 (두 번째 클래스) 값 가져 오기
init(){
/PropertiesViewController
:클래스 CRUDController : UIViewController에 {
VAR 조건 : ConditionsViewController
VAR 속성
클래스는 여기 CRUDController 이름하고는 반드시 중요한 코드입니다/아래에서 원래 인스턴스가 아닌 새 인스턴스를 생성하고 있음을 이해했습니다.
// 내가 그들을 초기화하기 위해 신속하게 나를 강제하고 나는 그것을 할 다른 방법을 모른다.
// VAR 조건 : ConditionsViewController var에 속성 :
// 함수 saveMeter에서하지만 텍스트의 값은 여전히 null 인 PropertiesViewController
을 는 // 나는이처럼 그들을 참조 노력했다.conditions = ConditionsViewController()
properties = PropertiesViewController()
super.init(nibName: nil, bundle:nil)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
FUNC의 saveMeter() {
//conditions.setConditions()
//properties.setProperties()
//creating empty meter
let m1 = Meter(context: MOC)
//이이었다 내가 Coredata에서 미터 개체에 대한 값을 설정하고있다
//conditions values
m1.newMeterCond1 = conditions.newMeterCond1Val
m1.newMeterCond2 = conditions.newMeterCond2Val
m1.newMeterCond3 = conditions.newMeterCond3Val
m1.oldMeterCond1 = conditions.oldMeterCond1Val
m1.oldMeterCond2 = conditions.oldMeterCond2Val
m1.oldMeterCond3 = conditions.oldMeterCond3Val
m1.oldMeterCond4 = conditions.oldMeterCond4Val
m1.oldMeterCond5 = conditions.oldMeterCond5Val
m1.cnc = conditions.CNCVal
//properties values
m1.outKW = properties.OutKWFromTextField
m1.outKWH = properties.OutKWHFromTextField
m1.outKVARH = properties.OutKVARHFromTextField
m1.multiplier = properties.multiplierFromTextField
m1.newMeterNumber = properties.newMeterNumberFromTextField
APPD.saveContext()
}
} 여기
있습니다 수업은 텍스트 필드와 스위치를 얻고 있습니다 :
클래스 ConditionsViewController :의 UIViewController {
//variables to set
var newMeterCond1Val = Bool()
var newMeterCond2Val = Bool()
var newMeterCond3Val = Bool()
var oldMeterCond1Val = Bool()
var oldMeterCond2Val = Bool()
var oldMeterCond3Val = Bool()
var oldMeterCond4Val = Bool()
var oldMeterCond5Val = Bool()
var CNCVal = Bool()
@IBOutlet weak var oldMeterNumber: UILabel!
@IBOutlet weak var newMeterNumber: UILabel!
var oldMeterFromCell = String()
var newMeterFromTabChild = String()
//old meter conditions
@IBOutlet weak var oldMeterCond1: UISwitch!
@IBOutlet weak var oldMeterCond2: UISwitch!
@IBOutlet weak var oldMeterCond3: UISwitch!
@IBOutlet weak var oldMeterCond4: UISwitch!
@IBOutlet weak var oldMeterCond5: UISwitch!
//new meter conditions
@IBOutlet weak var newMeterCond1: UISwitch!
@IBOutlet weak var newMeterCond2: UISwitch!
@IBOutlet weak var newMeterCond3: UISwitch!
@IBOutlet weak var CNC: UISwitch!
@IBAction func saveMeter(_ sender: AnyObject) {
//this is where I am calling the function from CRUDController
CRUD.saveMeter()
}
}
클래스 PropertiesViewController : UIViewController에, UITextFieldDelegate {
var oldMeterFromCell = String()
//variables to set
var OutKWHFromTextField = Float()
var OutKWFromTextField = Float()
var OutKVARHFromTextField = Float()
var newMeterNumberFromTextField = String()
var multiplierFromTextField = Float()
@IBOutlet weak var OldMeterLabel: UILabel!
//new meter properties
@IBOutlet weak var OutKWH: UITextField!
@IBOutlet weak var OutKW: UITextField!
@IBOutlet weak var OutKVARH: UITextField!
@IBOutlet weak var newMeterNumber: UITextField!
@IBOutlet weak var multiplier: UITextField!
}
나는 각에서의 UITextField와 스위치를 초기화 시도 init()과 init()이 필요한 클래스들, 나는 또한 conve nience init(), 나는 또한 사용자 정의 함수를 사용하여 그것들을 초기화했다. CRUDController 클래스에서 두 클래스 모두에 대한 인스턴스를 만들었지 만 저장 버튼을 눌렀을 때 텍스트 값이 되돌아 오지 않습니다. 나는 2 개의 전망이 있고 나가 할 수 있더라도 나는 싶지 않다 때문에 segue를 사용할 수 없다.원래 PropertiesController 및 ConditionsController에 대한 액세스 권한이 CRUDController 클래스에서 필요하며 위임 개념과 문제가 해결되도록 CODE를 필요로하는 방법을 매우 혼란스럽게 처리하는 방법을 모릅니다. 아니오 개념