所以我试图创建一个或多或少是静态数据引用并使用plist存储数据的应用
我在故事板上设置了两个TableViewControllers,我想将选定的单元格rownumber或其数据传递给下一个视图?
我的初步设置:
import UIKit
var categoryNames:NSArray = []
var categorySelected:String = ""
class ListForbTVC: UITableViewController {
override func viewDidLoad() {
super.viewDidLoad()
let path = NSBundle.mainBundle().pathForResource("listor", ofType: "plist")
let dict = NSDictionary(contentsOfFile: path!)
categoryNames = dict.objectForKey("Category") as NSArray
println(categoryNames.count)
}
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
出于某种原因,我无法弄清楚如何计算数组中的行数?
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 13
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as UITableViewCell
cell.textLabel!.text = categoryNames[indexPath.row] as? String
return cell
}
我应该在这里添加什么来实际通过segue传递值?能够很好地知道如何传递所选行的索引以及如何传递它的实际值。
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
if segue.identifier == "listData" {
}
如何在下一个视图中接收信息?
我已经在obj-c和X-Code 5中完成了这个,但是我无法弄清楚如何在Swift中做到这一点。
提前致谢
答案 0 :(得分:0)
我已根据swift更新了我的答案。请检查。
override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
if (segue.identifier == "segueTest") {
var svc = segue!.destinationViewController as secondViewController;
svc.toPass =data}
}
请检查http://jamesleist.com/ios-swift-passing-data-between-viewcontrollers/ 如果面孔问题仍然存在,请告诉我。
答案 1 :(得分:0)
您可以在第二个视图控制器中声明一个属性 - 类似这样 -
class VC2 : UIViewController {
var someString:String?
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
if (self.someString != nil) {
println("Some string =\(self.someString)")
}
}
}
然后在prepareForSegue
中,只需设置
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
if segue.identifier == "listData" {
let destVC=segue.destinationViewController as VC2
destVC.someString="Some value"
}
}