我正在制作一个应用程序,其中我从一个屏幕获取用户的条目并在另一个屏幕上处理和打印它们,这两个屏幕不是连续的屏幕。问题是,后面的屏幕没有填充第一个屏幕的详细信息数组 以下是为此输入、处理和输出连接的代码文件
.......................pool.swift.......................
import UIKit
class Pool: NSObject
{
var name:String = ""
var route:String = ""
var date: String = ""
var capacity: Int = 4
var car: String = ""
//var photo: UIImage
var email:String = ""
init(name:String, route:String, date: String, capacity: Int, car: String, email:String)
{
self.name = name
self.route = route
self.date = date
self.capacity = capacity
self.car = car
self.email = email
}
............PoolManager.swift............
import UIKit
class PoolManager: NSObject
{
static var pools = [Pool]()
class func AddPool(name:String, route:String, date: String, capacity: Int, car: String, email:String)
{
let p = Pool(name: name, route:route, date:date, capacity: capacity, car:car, email:email)
pools.append(p)
}
class func DeletePool(id: Int)
{
pools.removeAtIndex(id)
}
class func GetPool() -> [Pool]
{
return pools
}
}
......UsePoolViewController.swift............
import UIKit
class UsePoolViewController: UITableViewController
{
//let array = ["Ulhasnagar to Bandra", "Thane to Ghatkopar", "Kalyan to Thane", "Thane to Colaba"]
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{
return PoolManager.pools.count
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
let cell = tableView.dequeueReusableCellWithIdentifier("customcell")! as! customcell
let pooler = PoolManager.pools[indexPath.item]
cell.cellbox?.route = pooler.route
// this statement doesnt work properly, cellbox gets a nil value.
return cell
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)
{
if segue.identifier == "PoolingDetails"
{
let cell = sender as! customcell
let PoolingDetails = segue.destinationViewController as! UsePoolDetailsViewController
PoolingDetails.heading = cell.cellbox?.route
}
}
override func viewDidAppear(animated: Bool) {
tableView.reloadData()
}
}
......UsePoolDetailsViewController.swift........
import UIKit
class UsePoolDetailsViewController: UIViewController
{
var heading:String?
override func viewDidAppear(animated: Bool)
{
self.title = heading
}
}
....customcell.swift......
import UIKit
class customcell: UITableViewCell
{
var cellbox:Pool?
}
最佳答案
第一个选项:您可以创建一个 SharedClass,其中包含整个应用程序所需的数据。在您的情况下,您需要定期更新共享数据,以访问应用程序其他屏幕上的更新数据。
第二个选项:您可以使用 NSUserDefaults 来保留可以在整个应用程序中使用的数据。
关于ios - 如何获取一个表格,其中填充了从 iOS 应用程序的另一个屏幕获取的条目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35918240/