与代码争论

时间:2016-11-22 10:51:37

标签: swift segue

我有一个带有代码的uisearch栏来搜索一些数据。点击其中一些后,我需要推送到另一个UIView。

所以我正在使用这个

let vc=self.storyboard?.instantiateViewController(withIdentifier: "id") as! mapViewController
self.present(vc, animated: true, completion: nil)

效果很好,但在segue之后,视图不在narvigation控制器中,因为它是一个礼物。所以我希望使用show segue。 然后我将代码更改为

    self.show(vc, sender: self)

当我运行它时,它不起作用并显示

"while an existing transition or presentation is occurring; the navigation stack will not be updated."

我该怎么做才能在这里使用show segue?

3 个答案:

答案 0 :(得分:0)

使用pushViewController方法

self.navigationController?.pushViewController(vc, animated: true)

答案 1 :(得分:0)

正如消息所暗示的那样(好吧,它在你脸上大喊大叫)。 你不应该开始你的(动画)segue直到 最后的动画导航动作将完成。 (你的)代码需要进行重组才能实现这一目标。

答案 2 :(得分:0)

您当前的ViewController也需要在导航堆栈中,之后您可以推送另一个控制器。首先将当前的ViewController设置为导航控制器的rootViewController,然后从当前的Controller中推送mapViewController。