如何识别StoryboardSegue的那种

时间:2016-01-20 19:22:20

标签: ios uistoryboardsegue

在我的iOS项目中,我使用两种UIStoryboardSegue,它在导航控制器内或作为模态视图呈现视图。我在Interface Builder中将kind属性设置为:

  • 显示(例如推送)
  • 目前模态

现在我希望能够以编程方式识别segue的类型,以便自定义ViewController的外观。像这样:

class ViewController : UIViewController {
    var isModal : Bool = false
    ...
}

class OtherViewController : ViewController {
    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        if segue.destinationViewController is ViewController {
            let vc = segue.destinationViewController as! ViewController
            vc.isModal = TODO
        }
    }
}

我希望有一处房产,但我无法找到。我也希望segue课程有所不同,但我也找不到足够的文档。

我最初偶然发现这个问题试图使用isModal来解除ViewController与弹出ViewController之间的交替。我注意到现在似乎有一个更好的选择,即UnwindSegue。但是,我仍然需要标志才能自定义外观..

由于

1 个答案:

答案 0 :(得分:0)

也许我完全错了,但你不能使用segue的标识符吗?

例如,使用Modal<Name>命名所有模态视图控制器。然后检查

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) 
{
    if segue.identifier.hasPrefix("Modal") {
        let vc = segue.destinationViewController as! ViewController
        vc.isModal = TODO
    }
}