작성
·
288
답변 2
1
1
안녕하세요! didttn님!
말씀하신대로, 직접 세그웨이의 경우.. @IBAction을 지우셔도, prepare 함수가 호출되기 때문에.. 당연히 가능합니다.
즉, 제가 @IBAction으로 연결한 calculateButtonTapped 함수부분의
bmi = calculateBMI(height: heightTextField.text!, weight: weightTextField.text!)
BMI계산 로직을 아래처럼 prepare함수 부분으로 옮기시고, 구현하시면 되고..
그런데
지금 현재 에러가 나시는 이유는.. 아마도 기존에 스토리보드랑 함수가 연결되었던 부분을.. 단순히 함수를 삭제하셔서 에러가 날 것 같아요. 스토리보드에서 코드랑 연결시키면.. 스토리보드 코드 내부에는 함수랑 연결되었던 코드가 그대로 남아있기 때문에.. 버튼을 선택하신 후, 코드와 연결된 함수 부분의 "연결을 잘 끊어주셔야" 에러가 나지 않습니다.
버튼을 선택하시고, 오른쪽의 Connection Inspector부분에서 제가 캡처한 것처럼 연결이 잘 끊겨 있어야 에러가 나지 않으니.. 잘 확인해보시면 좋을 것 같습니다.
그리고 추가적으로 말씀드리면..
일반적으로 직접 세그웨이 연결 방식을 쓰더라도.. (보통은 로직 코드를 눈으로 더 잘 확인하기 위해서) @IBAction연결을 해놓고, 사용하는 편입니다. (스토리보드 방식을 사용하는 경우, 워낙 스토리보드와 코드가 분리되기 때문에.. 개발자가 코드를 놓칠 수 있는 부분이 많이 생기기도 하기 때문에, 그런 부분을 방지하기 위해서 그렇습니다.)
그리고, 제 강의에서 다른 방식도 다 설명드리지만, 코드로 화면이동을 하거나, 스토리보드로 화면 이동을 하는 경우에 로직을 더 잘 확인하기 위해서.. 세그웨이 이동방식은 잘 사용하지 않는 편입니다. (코드로 스토리보드의 인스턴스를 생성해서 프리젠트를 해서 사용하는 경우가 많습니다.)
(제가 그럼에도 세그웨이를 설명드리는 이유는.. 그래도 일단은 처음 배울때 여러가지 방식이 있다는 것은 잘 알고 있는 것이 중요하다고 생각하기 때문입니다. 실력이 올라가면.. 여러가지 방법중에서 취사 선택이 가능하니까요.)
위에 설명드린 내용을 잘 확인하셔서, 에러 부분을 잘 처리하시면 좋을 것 같네요!
감사합니다. :)