강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của uisong265592872714
uisong265592872714

câu hỏi đã được viết

Trở thành một nhà phát triển iOS thực sự thành công [từ những điều cơ bản đến công việc thực tế]

Điều hướng

self.navigationBar.topItem?.leftBarButtonItem을 해도 button이 보이지 않습니다

Viết

·

578

·

Đã chỉnh sửa

0

스크린샷 2023-06-21 오후 10.49.56.png강사님의 코드와 똑같이 코드를 구성했는데 버튼이 보이지 않습니다

스크린샷 2023-06-21 오후 10.50.54.pngaddsubView방식은 보이는 상황입니다 ㅠㅠ

혹시 바뀐부분이있는걸까요

iosswift동시성

Câu trả lời 2

0

uisong265592872714님의 프로필 이미지
uisong265592872714
Người đặt câu hỏi

저도 14.3.1로 확인을 헀습니다

제가 강의를 스토리보드로 구현하신부분을 코드로 구현하고있어 아래사진과같은방식으로 tabbar에 넣어준부분빼고는 다른점이 전혀없는데 이쪽에서 이런방식으로 구현한게 문제가 될수있을까요... 다시한번 확인해도 코드는 똑같습니다...스크린샷 2023-06-21 오후 11.46.32.png
스크린샷 2023-06-21 오후 11.42.15.png

enilv0529님의 프로필 이미지
enilv0529
Người chia sẻ kiến thức

거의 정답을 찾긴 하셨네요 이유만 이해하시면 될 것 같습니다.

네비게이션 뷰컨을 생성할 때 스토리보드 사용 유무가 객체 생성되는 시간에 영향을 미칩니다.

좀 더 풀어서 설명드리자면

스토리보드 있는상태로 네비뷰컨을 만들때는 네비의 rootViewController가 스토리보드에 이미 있는 상태로 만들게 됩니다.

그 뜻은 네비뷰컨을 생성하자마자 바로 topItem도 생성됨을 의미하는 것이죠.

그래서 viewDidLoad시점에 navigationBar의 topItem객체가 존재하는걸 확인할 수 있고 그 곳에 내가 원하는 설정도 가능합니다.

 

하지만 스토리보드 없이 네비뷰컨을 만들면 rootViewController설정할때 바로 되는게 아닌 vc가 생성되고 난 후 rootViewController가 셋팅되게 됩니다.

그러니 네비뷰컨을 생성하자마자 topItem이 생길수가 없습니다.

약간의 시간이 더 필요하게 되는것이죠

그것이 스토리보드 없이 네비뷰컨을 만들었을 때 viewDidLoad에서 topItem이 없게 되는 차이를 만들게 됩니다.

 

말씀하신것 처럼 이런건 구글링해도 안나오는 내용이니 잘 알아두시면 앞으로 개발하실 때 많은 도움이 되실 겁니다.

 

 

0

enilv0529님의 프로필 이미지
enilv0529
Người chia sẻ kiến thức

안녕하세요

 

지금 다시 해봤는데 문제없이 잘 되는걸 확인했습니다.

Xcode버전이 어떻게 되시나요

제가 지금 테스트한 건 14.3.1입니다.

 

uisong265592872714님의 프로필 이미지
uisong265592872714
Người đặt câu hỏi

혹시몰라서 ViewController쪽에다가 해당코드를 넣어보니까 실행이되는 상황이라서 스크린샷 2023-06-22 오전 12.14.39.pngclass HomeNavigationViewController: UINavigationController 에 viewdidLoad안에다가 해당코드를 넣었을때는 실행이 안되고 왜 여기서는 실행이되는건지...

아무리 구글링을 해도 알수가없어서 혹시 예상하시는 이유가 있을까요

uisong265592872714님의 프로필 이미지
uisong265592872714
Người đặt câu hỏi

스크린샷 2023-06-22 오전 12.25.02.png해당 코드를 viewwillappear에 넣어주니 정상적으로 작동하는데 이유가 뭔지 잘 모르겠네요ㅠㅠ 혹시 생명주기를 고려해야할 이유가 있을까요/...?

Hình ảnh hồ sơ của uisong265592872714
uisong265592872714

câu hỏi đã được viết

Đặt câu hỏi