향, 스타일 건너뛰기에 따른 메인 뷰 table view cell 분기처리
Enum을 사용한 분기처리!
요렇게 설계해놓고… Enum을 먼저 만들어보자
Enum 만들기
Enum은 행동이 trigger되는 뷰가 아닌 다음 뷰에 작성한다.
( Style 뷰에서 skip 버튼을 누르지만, Scent뷰에 Style 뷰 skip 관련 Enum을 작성한다)
enum IsStyleSkipped: Int {
case unskip = 0, skip
}
var isStyleSkipped: IsStyleSkipped?
네이밍… 괜찮은지 모르겠지만… 아무튼 이 것을 Style의 다음 뷰인 Scent 뷰에 작성해주고,
다시 Style 뷰로 돌아와서
Style 뷰 skip 여부 전달하기
@IBAction func touchSelectButton(_ sender: Any) {
pushToScentViewController(isSkip: false)
}
@IBAction func touchSkipButton(_ sender: Any) {
pushToScentViewController(isSkip: true)
}
if문으로 이렇게 분기처리 해 주면 된다.
Tabbar VC에 Enum 만들기
Style, Scent 뷰의 모든 skip 여부를 전달받을 Tabbar VC에 Enum을 만든다.
enum IsStyleScentSkipped: Int {
// style, scent 순서
case unskipUnskip = 0, unskipSkip, skipUnskip, skipSkip
}
var isStyleScentSkipped: IsStyleScentSkipped?
와 네이밍 진짜 맘에 안든다 ㅎㅎ
Scent 뷰 skip 여부 전달하기
@IBAction func touchSelectButton(_ sender: Any) {
pushToMainViewController(isSkip: false)
}
@IBAction func touchSkipButton(_ sender: Any) {
pushToMainViewController(isSkip: true)
}
Tabbar VC에서 Main VC로 Enum 전달하기
Main에도 Tabbar와 똑같이 Enum을 만들어 준다.
그리고 Tabbar에서 Main탭이 선택되었을 때 분기처리를 해 주면 된다. 안 된다.
이렇게 했으나… 자꾸 Main에선 nil이 넘어왔다.
당연함.
애초에 저 delegate 함수는 최초엔 불려지지도 않고… (탭 변경 후 다시 Main 돌아올 때 호출됨)
Scent -> Tabbar -> NavigationController -> Main 니까!!!!!!!! ㄷㄷ 바보였다
요것을 tabbarVC의 viewDidLoad에 넣어줘야 Main까지 전달이 잘 된다.
Main에서 table view cell hidden/unhidden 분기처리 하기
cellForRowAt 함수
mainTableViewCell 반환 함수 (나중에 바틀샵Cell 반환 함수도 만들 예정)
요런거 4개
분기처리 잘 되는 모습..