이 포스트는 edwith의 iOS 프로그래밍을 공부하고 정리한 내용입니다

edwith iOS 프로그래밍 - Navigation Item


  • 내비게이션 바의 콘텐츠를 표시하는 객체이다.

  • 뷰 컨트롤러가 전환될 때마다 내비게이션 바는 하나의 공동 객체이지만, 내비게이션 아이템은 각각의 뷰 콘트롤러가 가지고 있는 프로퍼티이다.

    • 즉, 내비게이션 바가 내비게이션 컨트롤러와 연관이 있다면 내비게이션 아이템은 해당 뷰 컨트롤러와 연관이 있다는 말
  • 보통 내비게이션 바에서 보여지는 중앙 타이틀, 좌측 바 버튼, 우측 바 버튼 등이 내비게이션 아이템의 프로퍼티이다

navigationItemImage-1


  • title : 내비게이션 바에 표시되는 내비게이션 아이템의 제목, 기본값은 nil.
var title: String? { get set }
  • backBarButtonItem : 내비게이션 바에서 뒤로 버튼이 필요할 때 사용할 바 버튼 항목.
var backBarButtonItem: UIBarButtonItem? { get set }
  • hidesBackButton : 뒤로 버튼이 숨겨져 있는지를 결정하는 Bool 값
var hidesBackButton: Bool { get set }

  • setHidesBackButton(_:animated:) : 뒤로 버튼이 숨겨져 있는지를 설정하고, 전환 애니메이션 효과 적용
func setHideBackButton(_ hidesBackButton: Bool, animated: Bool)

  • 내비게이션 아이템은 크게 좌, 우 바 버튼 아이템과 중앙 타이틀 영역이 있다.

  • 좌측 바 버튼, 우측 바 버튼 아이템의 경우 타입은 UIBarButtonItem이다.

  • 상황에 따라서 커스텀 뷰를 넣어서 구현할 수 있다.

프로퍼티

  • titleView : 중앙 타이틀 영역의 뷰
var titleView: UIView? { get set }

// TIP : 중앙 타이틀 영역에 뷰를 상속받은 (UILabel, UIView, UIImageView등등) 클래스들을 표현할 수 있다
  • leftBarButtonItems : 좌측 아이템 영역의 UIBarButtonItem의 바 버튼 아이템 배열
var leftBarButtonItems: [UIBarButtonItem]? { get set }
  • leftBarButtonItem : 좌측 아이템 영역의 UIBarButtonItem 중에 가장 좌측 바 버튼 아이템
var leftBarButtonItem: UIBarButtonItem? { get set }
  • rightBarButtonItems : 우측 아이템 영역의 UIBarButtonItem의 바 버튼 아이템 배열
var rightBarButtonItem: [UIBarButtonItem]? { get set }
  • rightBarButtonItem : 우측 아이템 영역의 UIBarButtonItem 중에 가장 우측 바 버튼 아이템
var rightBarButtonItem: UIButtonItem? { get set }

메서드

  • setLeftBarButtonItems(_:animated:) : 좌측 아이템 영역에 UIBarButtonItem 타입의 객체들을 순차적으로 설정하고 애니메이션 효과를 적용
func setLeftBarButtonItems(_Items: [UIBarButtonItem]?, animated: Bool)
  • setLeftBarButton(_:animated:) : 좌측 아이템 영역에 UIBarButtonItem 타입의 객체를 설정하고 애니메이션 효과를 적용
func setLeftBarButton(_ item: UIBarButtonItem?, animated: Bool)
  • setRightBarButtonItems(_animated:) : 우측 내비게이션 아이템 영역에 UIBarButtonItem 타입의 객체들을 순차적으로 설정하고 애니메이션 효과를 적용
func setRightBarButtonItems(_items: [UIBarButtonItem]?, animated: Bool)
  • setRightBarButton(_:animated:) : 우측 아이템 영역에 UIBarButtonItem 타입의 객체를 설정하고 애니메이션 효과를 적용
func setRightBarButton(_ item: UIBarButtonItem?, animated: Bool)