Я хочу отправить данные из UITableView в UIviewController.Я хочу установить counter
в значение строки, выбранной в UITableView, а затем вставить это значение в UIViewController.У меня проблема в том, что изначально независимо от того, какую строку я нажимаю в UITableView, он устанавливает counter
= 0
Затем, если я отклоняю ViewController, возвращаюсь к UITableView и выбираю другую строку со значением * 1005.* будет равен предыдущему выбранному мной ряду.так что это будет пресс позади.Как я могу это исправить?
Файл Swift UITableViewController:
import Foundation
import UIKit
class TableViewController : UITableViewController {
@IBOutlet var Tableview: UITableView!
var sectionName = ["Day 0","Day 1","Day 2","Day 3","Day 4","Day 5","Day 6"]
var rowselected = Int()
override func viewDidLoad() {
super.viewDidLoad()
}
//setting up tableview rows
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return sectionName.count
}
//what cell is & how it looks
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = Tableview.dequeueReusableCell(withIdentifier: "cell") as! UITableViewCell!
cell?.textLabel?.text = sectionName[(indexPath as NSIndexPath).row]
cell?.textLabel?.textAlignment = .center
cell?.textLabel?.font = UIFont(name: "Avenir", size:30)
return cell!
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let destinationVC = segue.destination as! foodinfo
destinationVC.counter = rowselected
}
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
rowselected = indexPath.row
self.performSegue(withIdentifier: "dayx", sender: self)
}
Файл Swift моего ViewController (foodinfo):
import Foundation
import AVKit
class foodinfo: UIViewController {
var counter = Int()
@IBOutlet var tabs: UISegmentedControl!
@IBOutlet var shiftView: UIView!
@IBOutlet var theTitleLable: UILabel!
var simpleView1: UIView!
var simpleView2: UIView!
var theTitleArray = ["apple","orange","bananna","kiwi","grape","mango","avo"]
override func viewDidLoad() {
simpleView1 = SimpleVC1().view
simpleView2 = SimpleVC2().view
shiftView.addSubview(simpleView2)
shiftView.addSubview(simpleView1)
getTitle()
}
func getTitle() {
theTitleLable.text = theTitleArray[counter]
}
//segmented controller tabs for swapping old view
@IBAction func tabselected(_ sender: Any) {
switch (sender as AnyObject).selectedSegmentIndex {
case 0:
shiftView.bringSubviewToFront(simpleView1)
break
case 1:
shiftView.bringSubviewToFront(simpleView2)
break
case 2:
shiftView.bringSubviewToFront(simpleView1)
break
default:
break
}
}
//back to tableview
@IBAction func backToSections(_ sender: Any) {
self.dismiss(animated: true, completion: nil)
}
}