是否可以在prepareForSegue中使用if / else?

时间:2015-04-24 02:22:21

标签: ios swift

我正在尝试使用一些信息(txtTitulo,txt1,img1)填充视图控制器,如下所示:

class EstruturaAnatTroncoViewController: UIViewController {

@IBOutlet weak var casca: UIButton!
@IBOutlet weak var cambio: UIButton!
@IBOutlet weak var aneis: UIButton!
@IBOutlet weak var cerne: UIButton!
@IBOutlet weak var raios: UIButton!
@IBOutlet weak var medula: UIButton!

var nameButton: String!

override func viewDidLoad() {
    super.viewDidLoad()

    let color = UIColor(red: 237, green: 236, blue: 238, alpha: 1)

    casca.layer.cornerRadius = 25
    casca.layer.borderWidth = 1
    casca.layer.borderColor = color.CGColor
    casca.setTitle("Casca", forState: UIControlState.Normal)
    casca.titleLabel!.textAlignment = .Center
    casca.titleLabel!.textColor = color

    cambio.layer.cornerRadius = 25
    cambio.layer.borderWidth = 1
    cambio.layer.borderColor = color.CGColor
    cambio.setTitle("Câmbio", forState: UIControlState.Normal)
    cambio.titleLabel!.textAlignment = .Center
    cambio.titleLabel!.textColor = color

    aneis.layer.cornerRadius = 25
    aneis.layer.borderWidth = 1
    aneis.layer.borderColor = color.CGColor
    aneis.setTitle("Anéis", forState: UIControlState.Normal)
    aneis.titleLabel!.textAlignment = .Center
    aneis.titleLabel!.textColor = color

    cerne.layer.cornerRadius = 25
    cerne.layer.borderWidth = 1
    cerne.layer.borderColor = color.CGColor
    cerne.setTitle("Cerne e alburno", forState: UIControlState.Normal)
    cerne.titleLabel!.textAlignment = .Center
    cerne.titleLabel!.textColor = color

    raios.layer.cornerRadius = 25
    raios.layer.borderWidth = 1
    raios.layer.borderColor = color.CGColor
    raios.setTitle("Raios", forState: UIControlState.Normal)
    raios.titleLabel!.textAlignment = .Center
    raios.titleLabel!.textColor = color

    medula.layer.cornerRadius = 25
    medula.layer.borderWidth = 1
    medula.layer.borderColor = color.CGColor
    medula.setTitle("Medula", forState: UIControlState.Normal)
    medula.titleLabel!.textAlignment = .Center
    medula.titleLabel!.textColor = color

}


@IBAction func sliderView(sender: AnyObject) {

    var storyBoard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)

    var vc: UINavigationController = storyBoard.instantiateViewControllerWithIdentifier("SlideViewController") as! UINavigationController

    self.showViewController(vc, sender: self)

}

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

    if nameButton == "Casca" {

        var dtVC = segue.destinationViewController as! DetailViewController
        dtVC.txtTitulo = "Casca"
        dtVC.img1 = "casca.jpg"
        dtVC.txt1 = "A casca é constituída interiormente pelo floema, conjunto de tecidos vivos especializados para a condução da seiva elaborada, e exteriormente pelo córtex, periderme e ritidoma, tecidos que revestem o tronco."

    } else if nameButton == "Câmbio" {

        var dtVC = segue.destinationViewController as! DetailViewController
        dtVC.txtTitulo = "Câmbio"
        dtVC.img1 = "cambio.jpg"
        dtVC.txt1 = "O câmbio é um tecido meristemático, isto é, apto a gerar novos elementos celulares, constituído por uma camada de células situada entre o xilema e o floema, só sendo visível ao microscópio. Permanece ativo durante toda a vida do vegetal e é responsável pela formação dos tecidos secundários que constituem o xilema e a casca. A atividade cambiel é sensivelmente influenciada pelas condições climáticas."

    }


}

@IBAction func casca(sender: AnyObject) {

    nameButton = casca.titleLabel!.text

}
@IBAction func cambio(sender: AnyObject) {

    nameButton = cambio.titleLabel!.text

}
@IBAction func aneis(sender: AnyObject) {

    nameButton = aneis.titleLabel!.text

}
@IBAction func cerne(sender: AnyObject) {

    nameButton = cerne.titleLabel!.text

}
@IBAction func raios(sender: AnyObject) {

    nameButton = raios.titleLabel!.text

}
@IBAction func medula(sender: AnyObject) {

    nameButton = medula.titleLabel!.text
}

override func viewWillAppear(animated: Bool) {
    nameButton = nil

}

}

IBAction func casca正在运作,但其他人则没有。我不知道为什么会这样。 当我使用其他IBAction时,nameButton会更改其值,但是在prepareForSegue函数中没有任何反应!我究竟做错了什么?谢谢你的帮助。

P.S。:如果你们需要更多关于任何事情的信息,请告诉我们!

2 个答案:

答案 0 :(得分:1)

您不需要在此处播放按钮名称。而是为每个按钮创建一个segue到同一个目标视图控制器。

回答你的问题,答案是"是的,我们可以在prepareForSegue方法中使用if / else块。

更改方法prepareForSegue如下。

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)
{
    if (segue.identifier == "cascaButtonSegue")
    {
        var dtVC = segue.destinationViewController as! DetailViewController
        dtVC.txtTitulo = "Casca"
        dtVC.img1 = "casca.jpg"
        dtVC.txt1 = "A casca é constituída interiormente pelo floema, conjunto de tecidos vivos especializados para a condução da seiva elaborada, e exteriormente pelo córtex, periderme e ritidoma, tecidos que revestem o tronco."
    }
    else if (segue.identifier == "cambioButtonSegue")
    {
        var dtVC = segue.destinationViewController as! DetailViewController
        dtVC.txtTitulo = "cambio"
        dtVC.img1 = "cambio.jpg"
        dtVC.txt1 = "A cambio é constituída interiormente pelo floema, conjunto de tecidos vivos especializados para a condução da seiva elaborada, e exteriormente pelo córtex, periderme e ritidoma, tecidos que revestem o tronco."
    }
    else if (segue.identifier == "aneisButtonSegue")
    {
        var dtVC = segue.destinationViewController as! DetailViewController
        dtVC.txtTitulo = "aneis"
        dtVC.img1 = "aneis.jpg"
        dtVC.txt1 = "A cerne é constituída interiormente pelo floema, conjunto de tecidos vivos especializados para a condução da seiva elaborada, e exteriormente pelo córtex, periderme e ritidoma, tecidos que revestem o tronco."
    }
    else if (segue.identifier == "cerneButtonSegue")
    {
        var dtVC = segue.destinationViewController as! DetailViewController
        dtVC.txtTitulo = "cerne"
        dtVC.img1 = "cerne.jpg"
        dtVC.txt1 = "A cerne é constituída interiormente pelo floema, conjunto de tecidos vivos especializados para a condução da seiva elaborada, e exteriormente pelo córtex, periderme e ritidoma, tecidos que revestem o tronco."
    }
    else if (segue.identifier == "raiosButtonSegue")
    {
        var dtVC = segue.destinationViewController as! DetailViewController
        dtVC.txtTitulo = "raios"
        dtVC.img1 = "raios.jpg"
        dtVC.txt1 = "A raios é constituída interiormente pelo floema, conjunto de tecidos vivos especializados para a condução da seiva elaborada, e exteriormente pelo córtex, periderme e ritidoma, tecidos que revestem o tronco."
    }
    else if (segue.identifier == "medulaButtonSegue")
    {
        var dtVC = segue.destinationViewController as! DetailViewController
        dtVC.txtTitulo = "medula"
        dtVC.img1 = "medula.jpg"
        dtVC.txt1 = "A medula é constituída interiormente pelo floema, conjunto de tecidos vivos especializados para a condução da seiva elaborada, e exteriormente pelo córtex, periderme e ritidoma, tecidos que revestem o tronco."
    }
}

希望这会对你有所帮助。 :)

答案 1 :(得分:0)

改变这一点,

override func viewWillAppear(animated: Bool) {
    nameButton = ""
}