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





