我正在尝试将数组从一个视图控制器复制到另一个视图控制器,但不知何故它不起作用..我尝试使用此代码:
open util/ordering[S]
在视图控制器中,我想从此代码中发送数据:
let otherVC = TerningspilletViewController()
mineSpillere = otherVC.mineSpillere2
println("otherVC")
将要接收此数据的视图控制器具有以下代码:
var mineSpillere = ["Spiller 1", "Spiller 2", "Spiller 3"]
" var mineSpillere2 = [String]()
"将显示文本,但当我尝试显示它时,它表示" var mineSpillere
"是空的。有什么建议/想法吗?
答案 0 :(得分:3)
如果你想访问另一个viewController的数组,那么你可以将它保存在内存中,为此你可以这样使用NSUserDefaults
:
//save
var mineSpillere = ["Spiller 1", "Spiller 2", "Spiller 3"]
var defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject(mineSpillere, forKey: "YourKey")
现在你可以通过这种方式阅读它:
//read
if let testArray : AnyObject? = NSUserDefaults.standardUserDefaults().objectForKey("YourKey") {
var readArray : [NSString] = testArray! as! [NSString]
println(readArray)
}
如果你想用你原来的方式来做这就是代码:
<强> FirstViewController.swift 强>
import UIKit
class FirstViewController: UIViewController {
var mineSpillere = ["Spiller 1", "Spiller 2", "Spiller 3"]
override func viewDidLoad() {
super.viewDidLoad()
}
}
<强> SecondViewController.swift 强>
import UIKit
class SecondViewController: UIViewController {
var mineSpillere2 = [String]()
override func viewDidLoad() {
super.viewDidLoad()
let otherVC = FirstViewController()
mineSpillere2 = otherVC.mineSpillere
println(mineSpillere2) //[Spiller 1, Spiller 2, Spiller 3]
}
}
答案 1 :(得分:0)
首先结帐你使用故事板
如果您使用的是storyboard
let otherVc = UIStoryboard(name: "Main", bundle: NSBundle.mainBundle()).instantiateViewControllerWithIdentifier("storyboardIdendifier") as? TerningspilletViewController
otherVC.mineSpillere2 = mineSpillere
println(otherVc)
否则就这样做
let otherVC = TerningspilletViewController()
otherVC.mineSpillere2 = mineSpillere
println("otherVC")
答案 2 :(得分:0)
如果您使用的是故事板,我建议您在prepareForSegue
中传递数据:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "TerningspilletViewSegue" {
let otherVc = segue.destinationViewController as! TerningspilletViewController
otherVc.mineSpillere = mineSpillere
}
}
答案 3 :(得分:0)
尝试此代码可以正常工作从一个viewController发送数据到另一个viewcontroller.just storyboard id的引用,您可以将数据从一个视图发送到另一个视图。然后我们基于该对象引用创建该类对象,我们可以访问该数组和那些类属性然后只是附加它。
let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
let secondView = storyBoard.instantiateViewController(withIdentifier: "tableView") as! TableViewController.
self.present(secondView, animated: true) {
let data = nameArray
secondView.models.append(data!)
secondView.tableView.reloadData()
}