Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/111.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 与segue一起传递的数组中的Propertylist_Ios_Xcode_Swift - Fatal编程技术网

Ios 与segue一起传递的数组中的Propertylist

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

因此,我尝试创建一个或多或少是静态数据引用的应用程序,并使用plist存储数据

我在序列图像板上设置了两个TableViewController,我想将选定的单元格行数或其数据传递到下一个视图

我的初始设置:

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