performSegueWithIdentifier不起作用 - Swift

时间:2016-02-20 07:41:07

标签: ios swift

当用户点击表格视图的一行时,我试图使用performSegueWithIdentifier。但是,它不起作用,我有下一个错误:

 Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not perform segue with identifier 'categoriesS'. A segue must either have a performHandler or it must override -perform.'

我用Google搜索了错误,但我找不到任何内容。我已经在故事板中创建了push segues,并将它们设置为我在代码中使用的标识符。 这是我的代码(PD:我正在使用此tableview,作为侧栏菜单):

import Foundation

class menuVC: UIViewController,UITableViewDelegate, UITableViewDataSource {
    @IBOutlet weak var ProfileImage: UIImageView!
    @IBOutlet weak var myTable: UITableView!

    var opciones = [String]()
    var segues = [String]()

    override func viewDidLoad() {
        super.viewDidLoad()

        myTable.delegate = self

        opciones = ["Categories","My Coins","Get Coins","Share","LogOff","Exit"]
        segues = ["categoriesS","myCoinsS","getCoinsS"]
    }

    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 6
    }

    func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
        print(opciones[indexPath.row])

        self.performSegueWithIdentifier(segues[indexPath.row], sender: self)
    }

    func numberOfSectionsInTableView(tableView: UITableView) -> Int {
        return 1
    }

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        var cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as UITableViewCell

        cell.textLabel?.text = opciones[indexPath.row]

        return cell
    }   
}

谢谢!

1 个答案:

答案 0 :(得分:1)

你给出了一个错误的segue,因为控制台清楚地说明了这一点。您正在寻找' segue'这是在' opciones'数组,但你传递的是{< SKPhysicsBody(texture:xxx, size:xx)'阵列。仔细看。

修改 我看到你的编辑,看起来你已经使用不同的数组填充你的表,但你已经在didselectrow中使用了其他数组。请检查它