Привет всем! Реализовываю небольшой калькулятор и возникла проблема… У меня на главном экране вот такое окошко :
При нажатии на кнопку появляется всплывающее окошко, куда вводятся параметры
Проблема в том, что при заполнении данных в всплывающем окне и нажатии на кнопку “Добавить”, они не заполняются в центральном в Container Table View.
Класс Cabel
import Foundation
class Cable {
let NameOfCable : String
let LengthOfCable : String
let RCable : String
let XCable : String
init(NameOfCable: String, LengthOfCable : String, RCable : String, XCable : String) {
self.NameOfCable = NameOfCable
self.LengthOfCable = LengthOfCable
self.RCable = RCable
self.XCable = XCable
}
}
Класс Container Table View
import UIKit
class CableTableViewController: UITableViewController, AddCableViewControllerDelegate {
var cables = [Cable]()
override func viewDidLoad() {
super.viewDidLoad()
}
// MARK: - Table view data source
override func numberOfSections(in tableView: UITableView) -> Int {
// #warning Incomplete implementation, return the number of sections
return 1
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// #warning Incomplete implementation, return the number of rows
return cables.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "CableCellIdentifier", for: indexPath)
let cable = cables[indexPath.row]
cell.textLabel?.text = cable.NameOfCable
return cell
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
// Get the new view controller using segue.destination.
let navigationController = segue.destination as! UINavigationController
let addCableViewController = navigationController.topViewController as! AddCableViewController
addCableViewController.delegateCable = self
}
func addCableViewController(_ addCableViewController: AddCableViewController, didAddCable cable: Cable) {
cables.append(cable)
tableView.reloadData()
}
}
Класс Pop up view
import UIKit
protocol AddCableViewControllerDelegate {
func addCableViewController(_ addCableViewController: AddCableViewController, didAddCable cable: Cable)
}
class AddCableViewController: UIViewController {
@IBOutlet var NameOfCableTextField : UITextField!
@IBOutlet var LengthOfCableTextField : UITextField!
@IBOutlet var RCableTextField : UITextField!
@IBOutlet var XCableTextField : UITextField!
var delegateCable: AddCableViewControllerDelegate?
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func AddTappedCabel(_sender: UIBarButtonItem) {
let NameOfCable = NameOfCableTextField.text ?? ""
let LengthOfCable = LengthOfCableTextField.text ?? ""
let RCable = RCableTextField.text ?? ""
let XCable = XCableTextField.text ?? ""
let newCables = Cable(NameOfCable: NameOfCable, LengthOfCable: LengthOfCable, RCable: RCable, XCable: XCable)
delegateCable?.addCableViewController(self, didAddCable: newCables)
dismiss(animated: true, completion: nil)
}
@IBAction func CancelTapped(_sender: UIBarButtonItem){
dismiss(animated: true, completion: nil)
}
}