• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    미해결

고생많으십니다 질문드릴께 있어 연락드립니다

19.06.19 08:36 작성 조회수 89

0

고생많으십니다 강의 수강중에 질의가 있어연락드립니다.

Sign in 까지 강의에서는 Tableview를 통한 별도 xib 작성과 프로그래밍을 통해 화면 전환을 했었는데

Food Meal 강의 경우는 Interface builder를 통해 테이블 뷰 작성, 화면전환 강의를 해주셨습니다.

 

우선 Food Meal의 화면들을 별도 storyboard로 만들고 테이블뷰셀 역시 별도 xib 를 만들어

화면 구성 밑 화면 전환으로 프로그램을 수정해보고 있는데

현재까지 2가지 문제가 발생했습니다.

1. 별도 테이블뷰셀을 별도 xib로 구성후 테이블뷰에서 해당셀을 호출하는경우,

   별도 xib파일에 설정한 autolayout이 먹지 않고 셀의 좌측 상단부터 모든 객체들이 겹치게 나옵니다.

   구글 검색등을 통해 비슷한 사래는 많이 확인이 됐는데 정답은 찾지 못하여 부득이 강사님께 질의드립니다.

 

2. Food Meal의 tableview를 터치시 

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

        let memoViewDetailNaviCT = UIStoryboard(name: "MemoViewDetail", bundle: nil).instantiateViewController(withIdentifier: "MemoViewDetail")

        

        self.navigationController?.pushViewController(memoViewDetailNaviCT, animated: true)

}

이 메소드를 통하여 네비게이션 컨트롤로를 인스턴스화 하여 화면전환을 하게 되면

네비게이션 바버튼에 back버튼이 자동활성화가 되는데

예제진행시 별도 화면성 cancel 버튼을 작성시 back 버튼이 비활성화되고 cancel버튼이 활서와 됩니다.

현재 별도 storyboard상에 화면을 구현하고 있기때문에 생각으로는

prepare와 segue로 접근해서 segue identifier를 통해서 cancel, back버튼을 구분하여 생성해야 하지 않나라고 생각은드는데

어떻게 코드화를 해야할지 모르겠습니다.

 

상기 기재한 내용에 대해 답변 부탁드립니다-

 

 

 

답변 1

답변을 작성해보세요.

0

안녕하세요

보통 autolayout이 적용되지 않는다면

해당셀.translatesAutoresizingMaskIntoConstraints = false

이 설정을 해야 하는경우일 것 같습니다.

 

back에 대한 문의가 정확히 이해가 되지 않지만 back이냐 cancel이냐를 구분하는건

화면전환할 때 특정값을 넘겨주는게 간단하지 않나 싶습니다.

var isBack = false

이런식으로 디테일VC에 하나 생성해놓고

디테일VC로 진입할 때 isBack = true 또는 isBack = false를 줘서 이 기준으로 상단 버튼 구성하면 되지 않을까 싶습니다.