准备Segue在Swift中无法正常工作

3

我在一个viewController中使用了tableView。我正在尝试向detailViewController发送数据。但是由于某些原因,我无法推送到详细视图。我没有收到任何错误提示,只是它不起作用。

这是我的segue代码:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject) {

        if (segue.identifier == "test") {

            let detailViewController: DetailViewController = segue.destinationViewController as DetailViewController
            //println(index)

            detailViewController.fromPreviousView = index


      //
    }

你试过这样写吗 prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!)(带感叹号)? - Sergey Kalinichenko
是的,包括感叹号和问号。 - user1951876
3个回答

3
你是在程序中注册tableView单元格,所以它会创建不同的单元格而不是storyboard中的那个,因此没有segue。
解决方案是删除这行代码 self.tableViewOutlet.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell") 并将单元格标识符设置为storyboard中的“cell”。它就可以正常工作了。

0

通过右键单击MyStoryBoard->打开为->源代码,检查故事板的源代码。

搜索:

trigger="accessoryAction" 

如果你找到了它,就删除它。

有时候使用ctrl+拖动会添加这个额外的属性,导致prepareForSegue出现问题。


0

看起来这是Xcode 6最新beta版(可能从4到3)的一个bug。我遇到了同样的问题,直到我升级到这个新版本。 "prepareForSegue" 方法从未被调用。相同的代码适用于之前的(beta 2)版本,但在发布说明中的“Xcode 6 beta 4已知问题!”部分中没有看到任何关于此的内容,但有一份IB问题清单。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接