如何在视图控制器中为单个按钮创建两个segue?

时间:2017-03-15 14:34:05

标签: ios iphone swift

我有一个根视图控制器 - 这是一个呈现给用户的简单页面。在此页面中,有一个UIBarButton转到用户配置文件页面。

当用户在其个人资料中时,他/她将有一个后退按钮,允许他/她返回到根视图控制器。

但是,管理员和客户端的根视图控制器是不同的(管理员有一个标准视图控制器,客户端有一个标准视图控制器)。

如何创建由“后退”配置文件按钮触发的两个segue?我的意思是,根据当前登录的用户(管理员或客户),我想回到他们各自的页面。

客户端无法返回管理员页面,反之亦然。

有没有办法创建这两个段?甚至是另一种/更好的方式?我试图使用storyboard来做到这一点,但是当我创建第二个segue时,它会删除链接到按钮的第一个。

3 个答案:

答案 0 :(得分:2)

你不能这样做,但还有其他办法,在SenderViewControllerDestinatrionViewController之间创建两个segue bwt。在为您的按钮设置操作后,根据您的要求执行segue。

@IBAction func buttonAction(_ sender: UIButton) {
    if condition {
        self.performSegue(withIdentifier: "identifier1", sender: nil)
    }
    else {
        self.performSegue(withIdentifier: "identifier2", sender: nil)
    }
}

答案 1 :(得分:0)

你应该在你的代码中处理它。

@IBAction func backClick() {
    if isAdmin /* check condition here  */ {
      // admin work
    } else {
      // normal user work here
    }
} 

然后从故事板创建segue并为其指定标识符。

如果您想要执行segue,请使用

performSegue(withIdentifier: "identifier", sender: nil)

如果你想回去。

dismissViewControllerAnimated(true, completion: nil)

希望有所帮助。

答案 2 :(得分:0)

离开Nirav D的回答,使用if...else,条件是他们是管理员或客户。但是请不要从ViewController中的按钮本身control+drag control+drag,如下图所示。 Click and drag to admin VC Click and drag to client VC