이번엔 버튼을 누르면 값이 올라가고 다음 인터페이스 컨트롤러로 넘기는 것을 해보겠습니다..!!
저번 시간처럼 japan interface controller랑 watchkit class 만들어주시고 연결해주세요
그 다음 그룹 하나 생성해서
안에 버튼 두개를 만들어줍시다
한 개는 대한민국, 하나는 일본이라 써주고
그 밑에 label을 하나 생성하구
japan 인터페이스 컨트롤러도 마찬가지로 해줍시다
지금부터 할껀 국기를 보고 맞추면 +1, 틀릴 시 화면 전환을 하겠습니다.
korea class 입니다.
카운트 변수를 만들어주고 awake안에서 점수를 표시해줬습니다.
willActivate 랑 didDeactivate는 뭔지 잘 모르겠어요...
암튼 변수 선언하고 button과 label들을 이어주고
정답의 해당하는 버튼 클릭시 count+1 시켜준 뒤
pushController를 사용해서 다음 화면으로 이동하고 context 에 카운터를 넣어줬어요
withName 에 해당하는 게 다음 화면으로 이동하는 것이구
context는 변수를 담아서 넘길 수 있는 곳 같습니다.
//
// korea.swift
// test WatchKit Extension
//
// Created by 정광균 on 2021/05/07.
// Copyright © 2021 정광균. All rights reserved.
//
import WatchKit
import Foundation
class korea: WKInterfaceController {
var count=0 // 점수를 담을 변수 하나 선언
@IBOutlet weak var score: WKInterfaceLabel!// label을 연결
override func awake(withContext context: Any?) {
super.awake(withContext: context)
// 현재 점수 표시
score.setText("Score : \(self.count)") // Configure interface objects here.
}
override func willActivate() {
// This method is called when watch view controller is about to be visible to user
super.willActivate()
}
override func didDeactivate() {
// This method is called when watch view controller is no longer visible
super.didDeactivate()
}
// 대한민국 button과 연걸 정답 맞출시 count+=1
@IBAction func korea_correct() {
self.count=self.count+1
pushController(withName: "japan", context: count)
}
// 러시아 button과 연결 정답 틀리시 그냥 화면 이동
@IBAction func korea_wrong() {
pushController(withName: "japan", context: count)
}
}
japan class입니다.
tmp를 전역 변수로 선언했습니다.
선언한 이유는...
awake내에서 korea.swift에서 context를 넘겨주는 걸 받고난 뒤,
만약 japan 다음 usa를 만들어서 count를 넘겨주려고 했는데
넘겨주는 방법이랑 문법을 몰라서(swift 처음입니다 ㅜㅜ)
tmp 변수를 선언해줘서 count값을 받았습니당
암튼
tmp를 정답일 시 +1, 오답일 시+0하고
pushController로 화면 전환 했습니당!!
//
// japan.swift
// test WatchKit Extension
//
// Created by 정광균 on 2021/05/07.
// Copyright © 2021 정광균. All rights reserved.
//
import WatchKit
import Foundation
class japan: WKInterfaceController {
// 전역변수용
public var tmp=0
// score와 연결,
@IBOutlet weak var score_1: WKInterfaceLabel!
override func awake(withContext context: Any?) {
super.awake(withContext: context)
// context로 넘긴 것 중에 int형이 있는 것을 가져와서 label 안에 setText 해줍니다.
// 또한 tmp=count
if let count = context as? Int{
score_1.setText("Score : \(count)")
tmp=count
}
// Configure interface objects here.
}
override func willActivate() {
// This method is called when watch view controller is about to be visible to user
super.willActivate()
}
override func didDeactivate() {
// This method is called when watch view controller is no longer visible
super.didDeactivate()
}
// 일본 button과 연결, 정답일 시 +1
@IBAction func japan_correct() {
tmp=tmp+1
pushController(withName: "usa", context: tmp)
}
// 중국 button과 연결, 오답일 시 +0 하고 다음 화면
@IBAction func japan_wrong() {
pushController(withName: "usa", context: tmp)
}
}
이상으로 데이터를 다음 인터페이스 컨트롤러로 넘기는 시간을 가져봤습니당 !!
'개발 지식 > Apple Watch' 카테고리의 다른 글
애플워치 앱 개발하기!! (4) (0) | 2021.05.07 |
---|---|
애플워치 앱 개발하기!! (2) (0) | 2021.05.07 |
애플워치 앱 개발하기!! (1) (0) | 2021.05.06 |