如何以编程方式更改segue类型?

时间:2016-03-04 14:45:40

标签: swift segue

我如何以编程方式更改在故事板中创建的segue的类型?

我想根据设备类型更改segue种类。对于.phone故事板的类型"显示" (推)应该执行。对于.pad,我想将segue类型更改为" modal"。

我会在prepareForSegue中执行此操作,还是必须停止在shouldPerformSegueWithIdentifier中执行segue并手动执行模式segue?

编辑:此问题主要关注更改segue类型,而不是如何识别设备类型。

1 个答案:

答案 0 :(得分:-2)

试试这个:

enum UIUserInterfaceIdiom : Int {
    case Unspecified
    case Phone // iPhone and iPod touch style UI
    case Pad // iPad style UI
}

并在viewDidLoad()

    let storyboard = UIStoryboard(name: "Main", bundle: nil)
    let vc = storyboard.instantiateViewControllerWithIdentifier("vc2") as! myViewController

    switch UIDevice.currentDevice().userInterfaceIdiom {

    case .Phone:
      self.presentViewController(vc, animated: true, completion: nil)
        break

    case .Pad:
      self.showViewController(vc, sender: nil)
        break
    case .Unspecified:
        // Do something
        break
    default:
       // Do something
    }