Ios 与segue一起传递的数组中的Propertylist
因此,我尝试创建一个或多或少是静态数据引用的应用程序,并使用plist存储数据 我在序列图像板上设置了两个TableViewController,我想将选定的单元格行数或其数据传递到下一个视图 我的初始设置:Ios 与segue一起传递的数组中的Propertylist,ios,xcode,swift,Ios,Xcode,Swift,因此,我尝试创建一个或多或少是静态数据引用的应用程序,并使用plist存储数据 我在序列图像板上设置了两个TableViewController,我想将选定的单元格行数或其数据传递到下一个视图 我的初始设置: import UIKit var categoryNames:NSArray = [] var categorySelected:String = "" class ListForbTVC: UITableViewController { override func viewDidL
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
}
由于某种原因,我无法计算数组中的行数
我应该在这里添加什么来实际通过segue传递值?知道如何传递所选行的索引以及如何传递它的实际值将是很好的
如何在下一个视图中接收信息
我已经在obj-c和X-Code 5中这样做了,但我不知道如何在Swift中这样做
提前感谢我已根据swift更新了我的答案。请检查
override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
if (segue.identifier == "segueTest") {
var svc = segue!.destinationViewController as secondViewController;
svc.toPass =data}
}
请检查这个
如果faces仍然存在问题,请告诉我。您只需在第二个视图控制器中声明一个属性,类似于下面的内容-
class VC2 : UIViewController {
var someString:String?
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
if (self.someString != nil) {
println("Some string =\(self.someString)")
}
}
}
然后在你的准备格中,简单地设置它
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
if segue.identifier == "listData" {
let destVC=segue.destinationViewController as VC2
destVC.someString="Some value"
}
}
categoryNames.count是数组中的元素数-您已经在打印它了。至于传递数据,只需在目标视图控制器类上声明一个属性,并像在Objective CThanks Paul中那样设置它,出于某些愚蠢的原因,我没有让该语句在前面工作,现在它工作得非常好!但是仍然在与segue抗争:我试图用swift来做这件事,但无法真正理解语法,因为我担心你发布的是obj-c?
class VC2 : UIViewController {
var someString:String?
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
if (self.someString != nil) {
println("Some string =\(self.someString)")
}
}
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
if segue.identifier == "listData" {
let destVC=segue.destinationViewController as VC2
destVC.someString="Some value"
}
}