performSegueWithIdentifier Firing,但不显示

时间:2016-03-05 08:42:35

标签: ios swift uiviewcontroller segue

非常抱歉在此添加了另一篇文章,但我已经阅读了所有其他解决方案,但没有任何工作。我有一个非常简单的场景。

MasterViewController 将一堆自定义UIButtons添加到视图中。这显示完美。当我的自定义按钮被调用时,我然后将按钮路由回 MasterViewController 以转换下一个 SecondViewController 以显示在其自身之上。

我的代码是这样的:

[自定义按钮设置功能]

func setup() {

    self.masterViewController = self.storyboard.instantiateViewControllerWithIdentifier("MasterView") as! MasterViewController
}

func clicked()
{
    self.masterViewController.transition("SecondViewSegue") // matches the segue identifier perfectly
}

[MasterViewController func]

func transition(segueName: String)
{
    dispatch_async(dispatch_get_main_queue(), {
        self.performSegueWithIdentifier(segueName,sender: self)
    });

}

我确认的内容:

  • 自定义UIButton触发
  • performSegueWithIdentifier 正在解雇
  • MasterViewController prepareForSegue 正在解雇
  • viewDidLoad ()func在 SecondViewController
  • 中触发

我尝试过的事情:

  • 重新连接了Segue
  • 确认拼写相同(见上述表现)
  • 尝试使用和不使用dispath_async命令(再次,所有火灾)

实际上还没有涉及的代码。我很困惑。

提前谢谢。

2 个答案:

答案 0 :(得分:1)

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

搜索:trigger="accessoryAction" 如果找到它,请将其删除。

有时ctrl + dragging会添加此附加属性,从而导致prepareForSegue出现问题。

答案 1 :(得分:0)

好的,我发现了我的问题。我不小心创建了原始UIViewController的新实例。因此,即使函数正在调用,它也没有在屏幕上引用viewController。