13
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

updated at

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

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)
}

まとめ

  • かんたん・きれい・色あせない 方法で管理できるようになりました。
  • その他にもぐぐるといろいろな方法が出てきます。
  • もっと難しい方法もあるみたいですが、私の理解を超えているのでこれで許してください。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
13
Help us understand the problem. What are the problem?