프로그래밍 방식으로 탐색 모음의 제목을 설정하는 방법은 무엇입니까?


84

보기에 탐색 모음이 있고 탐색 항목 제목을 프로그래밍 방식으로 변경하려고합니다.

어떻게하나요?

답변:


204

UIViewController에서

self.navigationItem.title = @"The title";

예, toolbarItem의 제목이 아닌 navigationItem의 제목 만 업데이트하므로 이것을 선택합니다.
프라 카시 라만

30

Swift 3 버전 :

내비게이션 컨트롤러없이 내비게이션 바를 사용하는 경우 다음을 시도해 볼 수 있습니다.

navigationBar.topItem?.title = "Your Title"

도움을 바랍니다.


11

viewDidLoad에서

  self.title = @"Title";

3
내 두 센트 :) vewcontroller가 toolbarcontroller의 일부인 경우에도 작동합니다. 그런 다음 도구 모음 항목의 제목도 업데이트됩니다.
프라 카시 라만

7

에서 애플 문서 :

탐색 모음을 사용하는 가장 일반적인 방법은 탐색 컨트롤러를 사용하는 것입니다. 앱에서 탐색 모음을 독립 실행 형 개체로 사용할 수도 있습니다.

따라서 UINavigationController가있는 경우 탐색 모음의 제목을 설정하기 위해 수행해야하는 모든 작업 (모든 이전 답변에서 설명한대로)

self.navigationItem.title = @"title";

그러나 UIViewController의 개체 내에서 프로그래밍 방식으로 생성 된 독립형 탐색 모음이있는 경우 적절한 UINavigationItem 개체를 만들고 탐색 모음 개체 스택에 추가하여 탐색 모음의 초기 모양을 설정해야합니다.

  1. 탐색 모음 (UINavigationBar)의 인스턴스 만들기
  2. UINavigationBar 개체에 표시 할 단추 및보기를 관리하는 탐색 모음 항목 (UINavigationItem)의 인스턴스를 만듭니다. 이 단계에서 제목을 설정합니다.
  3. (선택적 단계) 오른쪽 / 왼쪽 버튼 (UIBarButtonItem 인스턴스)을 탐색 모음 항목에 추가합니다.

언급 된 단계에 대한 Objective-C 코드 샘플 :

UINavigationBar* navbar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 64)];

/* Create navigation item object & set the title of navigation bar. */
UINavigationItem* navItem = [[UINavigationItem alloc] initWithTitle:self.shoppingItem.name];

/* Create left button item. */
UIBarButtonItem* cancelBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(onTapCancel:)];
navItem.leftBarButtonItem = cancelBtn;

/* Create left button item. */
UIBarButtonItem* doneBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(onTapDone:)];
navItem.rightBarButtonItem = doneBtn;

/* Assign the navigation item to the navigation bar.*/
[navbar setItems:@[navItem]];

/* add navigation bar to the root view.*/
[self.view addSubview:navbar];

독립형 탐색 모음의 Swift 버전에 대해서는 이 답변을 확인하십시오 .


6

아래 코드를 작성 viewDidLoad하거나 더 좋을 수 있습니다.initWithNibName:

  self.navigationItem.title = @"title";

감사.


6

👇🏻를 사용할 수도 있습니다.

[self.navigationController.navigationBar.topItem setTitle:@"Titlet"];

2

이 코드는 나를 위해 작동하지 않았습니다.

self.navigationItem.title = @"Title here";

그러나 이것은 효과가있었습니다.

self.title = "Title Name"

2

UIViewController의 viewDidLoad에서

self.navigationItem.title = "The title";  //In swift 4

또는

당신은 단지

self.title = "The title"

트릭을 할 것이다

위의 문을 앱 델리게이트에 넣어 전역 적으로 복제 할 수도 있습니다.


0

ViewDidLoad 메서드에서 사용

형식 :

@property(nonatomic,readonly,retain) UINavigationItem *navigationItem; // Created on-demand so that a view controller may customize its navigation appearance.

예 :

self.navigationItem.title = @"Title here";

0

매우 중요한 참고 사항 : 상위 뷰 컨트롤러의 viewDidLoad 메서드 또는 스토리 보드의 상위 탐색 모음에서 위에서 언급 한 변경을 수행했는지 확인하십시오.


0

때로는 제목을 업데이트하고 있는데 아무런 영향을 미치지 않는 경우가 발생할 수 있습니다. 이것은에 대한 사용자 정의보기가있는 경우 일 수 topItem있으므로 다음과 같이 업데이트 할 수 있습니다.(self.navigationController?.navigationBar.topItem?.titleView as? UILabel)?.text = "My Happy New Title"

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.