Help us understand the problem. What is going on with this article?

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

More than 3 years have 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)
}

まとめ

  • かんたん・きれい・色あせない 方法で管理できるようになりました。
  • その他にもぐぐるといろいろな方法が出てきます。
  • もっと難しい方法もあるみたいですが、私の理解を超えているのでこれで許してください。
okamu_
no plan inc. CEO 元フリーランスエンジニア/ iOS / サーバーサイド / 共同創業 / 福岡出身 https://qiita.com/organizations/noplan-inc
https://twitter.com/okamu_ro
noplan-inc
no plan株式会社は、Webサイト、iOSアプリ、AndroidアプリなどWebサービス全般の開発から運用をワンストップで行っています。
https://noplan-inc.com
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