인프런 커뮤니티 질문&답변
viewController modalPresentationStyle 질문
작성
·
237
0
알려주신대로 팝업창 처럼 다른 VC로 넘어갈 때 뒤에 투명처리를 하려고 이 코드를 사용하였습니다
'''translangVC.modalPresentationStyle = .overCurrentContext'''
투명처리는 잘 되었는데 이 코드를 사용하고 다시 그 전 VC로 넘어가면 viewWillApear가 정상적으로 호출되지 않네요
저 코드를 주석처리 하니 viewWillApear가 정상적으로 호출되어 질문남깁니다!!
그리고 하나 더 추가로 질문하고 싶은데 UIButton의 title color를 바꾸려고
'''let themeColor = UIColor(red: 93, green: 199, blue: 145, alpha: 1)'''
'''koreanButtonText.setTitleColor(themeColor, for: .normal)'''
위와 같이 코드를 사용했는데 아예 글씨가 보이지 않더라구요 무슨 문제가 있는지 궁금합니다!!
퀴즈
팝업 화면을 별도의 파일이나 스토리보드로 만들어 사용하는 주된 이유는 무엇일까요?
앱의 전체 용량을 줄이기 위해
다른 화면에서 쉽게 재사용하고 관리하기 위해
복잡한 애니메이션 효과를 쉽게 구현하기 위해
기기의 성능을 최적화하기 위해
답변 1
0
modalPresentationStyle을 overCurrentContext로 해서 투명하게 띄우면 뒤의 뷰는 숨겨진게 아닌걸로 됩니다.
그러므로 현재 팝업이 내려간다고 해서 뒤에 뷰가 안보였다 보이는게 아닌 계속 보이고 있었으므로 ViewWillAppear계열의 함수가 호출되지 않는것입니다.
그 문제를 해결하는 방법은 팝업에 delegate를 걸어서 내려가면 호출하는 기능을 만드는 형태가 필요합니다.
UIColor에서 red, green, blue 설정값은 0~1사이 값을 입력받습니다.그래서 입력한 값이 1보다 크면 그냥 1로 설정이 된 것이고,
모든 컬러를 1로 하면 흰색이 되어 보이지 않는 것 처럼 된 것입니다.
그러므로 red: 93/255, green: 199/255, blue: 145/255 이런식으로 하면 됩니다.





