【问题标题】:Swift - View Controller called two timesSwift - 两次调用视图控制器
【发布时间】:2015-08-18 19:41:58
【问题描述】:

嘿,我有个小问题,

我设置了一个“tableviewcontroller”和一个“viewcontroller”。

接下来,我从“tableviewcontroller”到“viewcontroller”的原型单元创建了一个segue,并将其命名为“detail”。

接下来我在“tableviewcontroller”中创建了一个“bar-button-item”,并为另一个视图控制器创建了一个segue,并将segue命名为“edit”。

根据按下的项目,我想转到特定视图:

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

    self.performSegueWithIdentifier("detail", sender: self)

}

// MARK: - Navigation

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

    if segue.identifier == "edit" {

        let recordController: SpecViewController = segue.destinationViewController as! SpecViewController

        recordController.record = record

    } else if (segue.identifier == "detail") {

        var DestViewController: DetailViewController = segue.destinationViewController as! DetailViewController

        DestViewController.parameter = "detail"

    }

}

我的问题是,当我按下 tableviewcell 时,目标视图控制器“DetailViewController”被调用了两次!!

我不知道为什么会这样..

有人可以帮我解决这个问题吗??

问候和感谢

【问题讨论】:

  • 你使用的是静态tableView吗?
  • 静态是什么意思?我在主情节提要中插入了一个。

标签: xcode swift view controller segue


【解决方案1】:

那就试试吧:

 func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

    var row = indexPath.row

    if row%2 == 0
     {
     self.performSegueWithIdentifier("edit", sender: self)
     }
    else
    {
     self.performSegueWithIdentifier("detail", sender: self)
    }


}

【讨论】:

  • 好的,但是我如何在 prepareForSegue 中检查按下了哪一行?
  • 什么意思怎么查?您是否进行了控件拖动以创建到新视图控制器的 segue 并命名它?如果是,您应该注释掉 didSelectRowAtIndexPath 代码...。然后运行您的应用程序并查看
  • 好的,如果第一行应该转发到与第二行不同的视图控制器?我如何在 prepareForSegue 中进行此项检查?
  • 您是在问是否应该使用两个不同的新视图控制器?是的,当你说 if (segue.identifier == "edit")
  • no.. 我只想在“didSelectRowAtIndexpath”函数中设置一个 segue-identifier,然后根据 segue-identifier 转发到特定的视图控制器
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-07-20
  • 1970-01-01
  • 2011-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多