首先,我是初学者!所以它有点复杂,但基本上我正在尝试创建一个单独的视图控制器来显示struct/string
中包含对象的信息。我正在制作一个目录。我有两个控制器,一个用于tableView
(称为DirectoryTableViewController
),另一个用于详细视图(称为FacultyViewController
),然后我有一个swift文件(称为People)管理串。
我最终会在String
添加姓名,电话,电子邮件和图片,但现在我只是在做名字。
我的问题是它正在工作,我需要一些指示。谢谢!
这是我的DirectoryTableView:
import UIKit
struct peoples {
var teacherString: String!
var image: UIImage!
}
class DirectoryTableViewController: UITableViewController {
var detailViewController: DetailViewController? = nil
var array : [People]!
override func viewDidLoad() {
super.viewDidLoad()
print(array)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return array.count
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("directoryCell", forIndexPath: indexPath)
let person = array[indexPath.row]
cell.textLabel!.text = person.teacherString
return cell
}
override func tableView(tableView: UITableView, moveRowAtIndexPath fromIndexPath: NSIndexPath, toIndexPath: NSIndexPath) {
}
}
这是我的NewViewController:
import UIKit
class NewViewController: UIViewController {
@IBOutlet weak var nameTextField: UITextField!
@IBOutlet weak var phoneTextField: UITextField!
@IBOutlet weak var emailTextTield: UITextField!
var array : [People] = []
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func crateObjectButton(sender: AnyObject) {
let object = People(name: nameTextField.text! , phone: phoneTextField.text!, email: emailTextTield.text!)
array.append(object)
performSegueWithIdentifier("TeacherData", sender: self)
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "TeacherData" {
let dvc = segue.destinationViewController as? DirectoryTableViewController
dvc!.array = array
}
}
}
这是People.swift(模特):
import Foundation
class People {
var name : String
var phone: String
var email: String
init(name: String, phone: String, email: String) {
self.name = name
self.phone = phone
self.email = email
}
}
再次感谢!
答案 0 :(得分:0)
根据您的问题,您必须制作模型
导入基金会
class People {
var name : String
var phone: String
var email: String
init(name: String, phone: String, email: String) {
self.name = name
self.phone = phone
self.email = email
}
}
并创建一个视图控制器,从中收集所有这些细节,例如:像这样
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var nameTextField: UITextField!
@IBOutlet weak var phoneTextField: UITextField!
@IBOutlet weak var ageTextTield: UITextField!
var array : [People] = []
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func crateObjectButton(sender: AnyObject) {
let object = People(name: nameTextField.text! , phone: phoneTextField.text!, email: ageTextTield.text!)
array.append(object)
performSegueWithIdentifier("TeacherData", sender: self)
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "TeacherData" {
let dvc = segue.destinationViewController as? TableviewController
dvc!.array = array
}
}
}
这个segue将你带到tableviewcontroller,在viewdidLoad中我正在打印教师数组。
import UIKit
class TableviewController: UITableViewController {
var array : [People]!
override func viewDidLoad() {
super.viewDidLoad()
print(array)
}
}
然后使用此方法转到所选教师的deatil视图控制器:
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
object = array![indexPath.row]
performSegueWithIdentifier("yourdetailviewcontrollersegue", sender: self)
}