Xcode
iOS
Storyboard
Swift
Swift3.0

[swift] Storyboardのsegue idを「かんたん・きれい・色あせない」方法で管理する

More than 1 year has passed since last update.

Storyboardのsegue idを「かんたん・きれい・色あせない」方法で管理する

概要

  • Storyboardを使っているとsegueのidを文字列で指定すると思うのですが、ソースでも同じidじゃないといけません。
  • 増えると面倒なのでまとめていると思いますが、enumが便利なのでそっちでまとめています。

実際のコード

  • SegueHandlerType.swift と Config.swift を適当な場所においておきます。
Utility/SegueHandlerType.swift
protocol SegueType {
    var rawValue: String { get }
}

extension UIViewController {
    /**
     performSegue for segue
     - Parameters:
     - segue: Segue
     - sender: AnyObject
     */
    func performSegue(segue: Segue, sender: AnyObject?) {
        performSegue(withIdentifier: segue.rawValue, sender: sender)
    }
}

  • toCamera などをStoryboardのsegueに書いておきつつここでまとめる
Config/Config.swift
enum Segue: String, SegueType {
    case toCamera
    case toPhotos
    case toTutorial
    case toDetail
}

  • Controllerから呼び出す
Controllers/Hoge/Hoge.swift
private func firstExplain() {
    self.performSegue(segue: .toTutorial, sender: nil)
}

まとめ

  • かんたん・きれい・色あせない 方法で管理できるようになりました。
  • その他にもぐぐるといろいろな方法が出てきます。
  • もっと難しい方法もあるみたいですが、私の理解を超えているのでこれで許してください。