从不同的视图控制器创建performsegue
问题描述:
首先我要感谢的人抽出时间来帮我:)从不同的视图控制器创建performsegue
这里的追加新的对象是用来为我的阵列中创建对象的结构。
struct cellData {
let workoutName : String!
let workoutSets : Int
let workoutReps : Int
}
然后做一个数组出cellData
var workoutArray = [cellData]()
基本上在我的MainScreen.swift我叫一个新的变量,将举行从performsegue函数传递
var passedData = cellData(workoutName: "", workoutSets: 0, workoutReps: 0)
然后数据在我的CreateWorkout.swift中我指定了在segue之前应该发生什么。在这种情况下,我设置了目标视图控制器和一个新的常量,它将从结构中创建一个新对象,并将传递数据设置为等于我视图控制器中UI元素的值。
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let workout = cellData(workoutName: workoutName.text, workoutSets: Int(setStepper.text!)!, workoutReps: Int(repStepper.text!)!)
let destinationVC = segue.destination as! MainScreen
destinationVC.passedData = workout
}
Here is the app when I build the app
然后我把箱子按在我的文本字段
设置设置步进至4
设置众*步进到5
我希望能够附加一个新的o bject每当我继续,但相反,它只是取代当前对象:(
答
对于tableview应该有一个数据源,所以创建一个新的数据源,每次你创建一个新的数据单元只是将它附加到这个数据源,this将确保您获得MainScreen中的对象列表。
我有点困惑 - 你以后用'cellData'操作了什么东西?你期望它被附加到什么? – Michael
@Michael我只是使用有点像一个类,然后使用它来创建一个数组中的对象。 –
我认为你应该做的是为你的MainScreen创建一个数据源,并且每当你创建一个newDataCell时,你应该更新主屏幕的dataSource并在那里重新加载tableview – 3stud1ant3