gpt4 book ai didi

ios - 使用结构从 TableView 创建详细 View Controller

转载 作者:行者123 更新时间:2023-11-30 13:10:22 25 4
gpt4 key购买 nike

首先,我是初学者!所以它有点复杂,但基本上我正在尝试创建一个单独的 View Controller ,它显示带有对象的 struct/string 中保存的信息。我正在制作一个目录。我有两个 Controller ,一个用于 tableView (称为 DirectoryTableViewController),另一个用于详细 View (称为 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
}
}

再次感谢!

最佳答案

根据你的问题,你必须制作一个模型

导入基础

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
}
}

并创建一个 View Controller ,从中收集所有这些详细信息,例如:像这样

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)
}
}

然后您可以使用以下方法转到所选教师的详细 View Controller :

 override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
object = array![indexPath.row]
performSegueWithIdentifier("yourdetailviewcontrollersegue", sender: self)
}

关于ios - 使用结构从 TableView 创建详细 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38816835/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com