swiftgen을 사용하여 segueIdentier 관리
안드로이드면 R.java가 있는 것 같아요.
http://qiita.com/ksoichiro/items/4befb2695b1efdff72dd
수동으로 엔음 만들 수 있어요.
swiftgen을 사용하면 storyboard에서identifer를 추출하여 enum으로 관리할 수 있습니다.
설치하다.
이것은 홈brew를 사용하는 전제 조건이다.brew install swiftgen
xcode를 통해build에서 자동으로 생성
프로젝트 상단>Targets(main)>Build Phases+
선택 버튼new runs script phase
다음 코드 추가swiftgen storyboards ${SRCROOT}/${PRODUCT_NAME}/Base.lproj/Main.storyboard > ${SRCROOT}/${PRODUCT_NAME}/storyboardAutoGen.swift
storyboard의 방치 장소
전제는<<プロジェクト名>>/Base.lproj/Main.storyboard
이다.
나중에 구축할 때 코드 생성이 계속됩니다.
생성된 코드는 이런 느낌입니다.// Generated using SwiftGen, by O.Halligon — https://github.com/AliSoftware/SwiftGen
import Foundation
import UIKit
protocol StoryboardScene {
static var storyboardName : String { get }
}
extension StoryboardScene {
static func storyboard() -> UIStoryboard {
return UIStoryboard(name: self.storyboardName, bundle: nil)
}
static func initialViewController() -> UIViewController {
return storyboard().instantiateInitialViewController()!
}
}
extension StoryboardScene where Self: RawRepresentable, Self.RawValue == String {
func viewController() -> UIViewController {
return Self.storyboard().instantiateViewControllerWithIdentifier(self.rawValue)
}
static func viewController(identifier: Self) -> UIViewController {
return identifier.viewController()
}
}
protocol StoryboardSegue : RawRepresentable { }
extension UIViewController {
func performSegue<S : StoryboardSegue where S.RawValue == String>(segue: S, sender: AnyObject? = nil) {
performSegueWithIdentifier(segue.rawValue, sender: sender)
}
}
extension UIStoryboard {
struct Scene {
enum Main : StoryboardScene {
static let storyboardName = "Main"
}
}
struct Segue {
enum Main : String, StoryboardSegue {
case ToCameraViewController = "toCameraViewController"
case ToPhotoConfirmViewController = "toPhotoConfirmViewController"
}
}
}
사용법
befoe:performSegueWithIdentifier("toCameraViewController", sender: nil)
after:performSegue(UIStoryboard.Segue.Main.ToCameraViewController , sender: nil)
참조:
Reference
이 문제에 관하여(swiftgen을 사용하여 segueIdentier 관리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/m0a/items/b57376302d517aac6d9c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
brew install swiftgen
프로젝트 상단>Targets(main)>Build Phases
+
선택 버튼new runs script phase
다음 코드 추가swiftgen storyboards ${SRCROOT}/${PRODUCT_NAME}/Base.lproj/Main.storyboard > ${SRCROOT}/${PRODUCT_NAME}/storyboardAutoGen.swift
storyboard의 방치 장소전제는
<<プロジェクト名>>/Base.lproj/Main.storyboard
이다.나중에 구축할 때 코드 생성이 계속됩니다.
생성된 코드는 이런 느낌입니다.
// Generated using SwiftGen, by O.Halligon — https://github.com/AliSoftware/SwiftGen
import Foundation
import UIKit
protocol StoryboardScene {
static var storyboardName : String { get }
}
extension StoryboardScene {
static func storyboard() -> UIStoryboard {
return UIStoryboard(name: self.storyboardName, bundle: nil)
}
static func initialViewController() -> UIViewController {
return storyboard().instantiateInitialViewController()!
}
}
extension StoryboardScene where Self: RawRepresentable, Self.RawValue == String {
func viewController() -> UIViewController {
return Self.storyboard().instantiateViewControllerWithIdentifier(self.rawValue)
}
static func viewController(identifier: Self) -> UIViewController {
return identifier.viewController()
}
}
protocol StoryboardSegue : RawRepresentable { }
extension UIViewController {
func performSegue<S : StoryboardSegue where S.RawValue == String>(segue: S, sender: AnyObject? = nil) {
performSegueWithIdentifier(segue.rawValue, sender: sender)
}
}
extension UIStoryboard {
struct Scene {
enum Main : StoryboardScene {
static let storyboardName = "Main"
}
}
struct Segue {
enum Main : String, StoryboardSegue {
case ToCameraViewController = "toCameraViewController"
case ToPhotoConfirmViewController = "toPhotoConfirmViewController"
}
}
}
사용법
befoe:performSegueWithIdentifier("toCameraViewController", sender: nil)
after:performSegue(UIStoryboard.Segue.Main.ToCameraViewController , sender: nil)
참조:
Reference
이 문제에 관하여(swiftgen을 사용하여 segueIdentier 관리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/m0a/items/b57376302d517aac6d9c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
performSegueWithIdentifier("toCameraViewController", sender: nil)
performSegue(UIStoryboard.Segue.Main.ToCameraViewController , sender: nil)
Reference
이 문제에 관하여(swiftgen을 사용하여 segueIdentier 관리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/m0a/items/b57376302d517aac6d9c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)