programing tip

UINavigationBar-프로그래밍 방식으로 제목 설정?

itbloger 2020. 10. 13. 07:32
반응형

UINavigationBar-프로그래밍 방식으로 제목 설정?


각 탭에 다른보기가있는 탭 모음 응용 프로그램이 있습니다. 각 뷰에는 인터페이스 빌더에 제목이 설정된 UINavigationBar가 있습니다. ViewDidLoad 메서드의 절을 기반으로 제목을 변경하고 싶습니다. x {change the title}.

나는 시도 self.title = @"title"했지만 이것은 탭 표시 줄 항목 자체의 제목을 변경합니다.

그래서, 이것은 어떻게 이루어 집니까?


다음과 같은 코드를 사용하여 프로그래밍 방식으로 제목을 설정했습니다.

navBar.topItem.title = @"title";

여기서 navBar는 인터페이스 빌더의 탐색 모음에 연결된 IBOutlet UINavigationBar로 선언됩니다. 이것은 내 앱에서 작동했습니다. 그러나 나는 탭 바를 사용하지 않았습니다.

navBar.topItem이 탭 표시 줄 항목 인 경우 navBar의 topItem 및 탭 표시 줄 항목이 같은 개체.


사용하다

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

navBar.topItem.title모든 상황에서 설정 이 작동하는 것은 아닙니다.


이것을 사용하십시오 :

    CGRect navBarFrame = CGRectMake(0, 0, self.tableView.frame.size.width, 44.0);
    UINavigationBar *navBar = [[UINavigationBar alloc] initWithFrame:navBarFrame];

    UINavigationItem *navItem = [UINavigationItem alloc];
    navItem.title = @"Your Title";

    [navBar pushNavigationItem:navItem animated:false];

[self.view addSubView:navBar]; 

또는

self.tableView.tableHeaderView = navBar; etc

클래스가 UIViewController 유형 인 경우 viewDidLoad 메소드에 지정된대로 제목을 설정할 수 있습니다.

    [self setTitle:@"My Title"];

ViewController.m의 ViewDidLoad에서 다음과 같이 작성하십시오.

self.navigationItem.title=@"Hello World";

출력은 다음과 같습니다.

여기에 이미지 설명 입력


만들기 IBOutletUINavigationBar

navigationBar.topItem.title = @"Title";

도움이 되었기를 바랍니다.


다음을 사용했습니다.

self.navigationController.navigationBar.topItem.title = @"Title";

그러나 viewDidLoad 내에서 호출 될 때 제목을 변경하지 않기 때문에 디스패치 블록에서 호출해야했습니다.


제목이 모두 표시 되려면 내비게이션 컨트롤러의 델리게이트를 내비게이션 바 자체로 설정해야합니다. 그렇지 않으면 제목이 표시되지 않습니다!


ViewController 또는 TableViewController 아래의 ViewDidLoad에서 제목을 설정할 수도 있습니다.

_title = @"Title";

또는

self.title = @"Title";

이 시도,

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

나는 Swift 5에서 이런 식으로 달성했습니다.

override func viewDidLoad() {
    super.viewDidLoad()
    navigationItem.title = "Title"
}

참고 URL : https://stackoverflow.com/questions/3680805/uinavigationbar-set-title-programmatically

반응형