• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    미해결

viewWillAppear ,viewDidLoad

21.07.20 03:25 작성 조회수 155

0

setting App 5강 42분

안녕하세요 강의 너무 잘듣고있습니다

공부 하다가 궁금한게 있어 질문드립니다

강의 중에 "setting "이 viewDidLoad에 들어가면 general로 들어갔다 나온 이후 없어지게되서

화면이 보일때마다 호출되는 viewWillAppear에 등록하것은 이해가 됩니다!

그런데 왜 들어갔다 나오면 설정이 풀리는것인지 잘 모르겠습니다

즉 navigationBar  = true로 설정후 들어가서 general에 들어갔다오면 false로 변경되는건가요 아니면 아예 실행이 안되는것인가요 그렇다면 다른 navigationBar를 제외한 viewDidLoad에 있는 코드들은 어떻게 실행되는건가요?

메모리에 올라갔다가 메모리를 제거하지 않는이상 계속 유지되는 상태인데 왜 navigationBar에 영향을 주는지 잘 모르겠습니다 detail들어갔다 와도 유지 되어야하는것 아닌가요? 

(저도 강사님이 하시는대로 해서 실행은 됐는데 궁금해서 여쭤봅니다 ㅎㅎㅎ)

답변 2

·

답변을 작성해보세요.

1

윌리님의 프로필

윌리

질문자

2021.07.20

아~~ true가 false로 바뀌어서 다시돌아갔을때  다시 true로 설정해야 하는데

viewDidLoad에 작성하면 호출이 되지 않으므로 화면이 나타날때마다 실행되는

viewWillAppear에 작성하면 된다는 말씀이신거네요

navigationController가 각각이 아닌 하나라는 말씀 해주시니깐 이해가 바로 됐습니다

질문의 요점 정리가 좀 안돼있었던것 같았는데 이해해주시고 친절한 답변주셔서 감사하고

좋은 강의 감사드립니다!

0

안녕하세요.

 

화면마다 navigationController가 따로 있는게 아닌

navigationController라는 구조는 하나만 있고

그 구조 안에 여러개의 ViewController가 왔다갔다 하는거라고 생각하시면 될 것 같습니다.

 

그렇기에 특정 화면에서 navigationController의 설정을 바꾸는 코드가 실행됐다면

다른화면으로 넘어가더라도 그 바뀐 설정은 계속 유지됩니다.

 

그래서 화면마다 navigationController의 설정을 다르게 하고 싶다면

화면이 나올때마다 새로운 설정을 해주는 코드가 있어야 되는 것입니다.

 

예를들어

navigationBar색을 어느 특정한 곳에서 바꾸는 순간 이 이후부터는 화면을 여기저기 이동해도 navigationBar는 그 바뀐 색으로 계속 유지되게 됩니다.