programing

프로그래밍 방식으로 탐색 제목 변경

minimums 2023. 4. 28. 20:24
반응형

프로그래밍 방식으로 탐색 제목 변경

제목이 있는 네비게이션 바가 있습니다.이름을 바꾸기 위해 텍스트를 두 번 클릭하면 실제로 탐색 항목이라고 표시되므로 그럴 수 있습니다.

다음과 같은 코드를 사용하여 텍스트를 변경하려고 합니다.

declare navigation bar as navagationbar here
button stuff {
    navigationbar.text = "title"
}

그것은 분명히 제 코드가 아닙니다. 단지 어떻게 작동하는지 보여줄 뿐입니다.

그래서 버튼을 누를 때마다 제목이 바뀌었으면 합니다.

표시되는 보기 컨트롤러의 제목을 변경하여 제목을 변경할 수 있습니다.

viewController.title = "some title"

일반적으로 이 작업은 뷰 컨트롤러에 로드된 뷰에서 수행됩니다.

override func viewDidLoad() {
    super.viewDidLoad()
    self.title = "some title"
}

그러나 이 기능은 UINavigation Controller에 뷰 컨트롤러가 내장되어 있는 경우에만 작동합니다.직접 탐색 모음을 만드는 대신 이 작업을 수행하는 것이 좋습니다.사용자가 직접 탐색 모음을 만들어야 하는 경우 다음 작업을 수행하여 제목을 변경할 수 있습니다.

navigationBar.topItem.title = "some title"

에다음시다에서 다음을 .viewDidLoad

self.navigationItem.title = "Your Title"

아래 코드는 Xcode 7에서 작동합니다.

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

이것이 효과가 있다는 것을 알았습니다.

navigationItem.title = "Title"

스위프트 5.1

override func viewDidLoad() {
    super.viewDidLoad()
    navigationItem.title = "What ever you want"
}

그리고 만약 당신이 창조하려고 한다면.Navigation Bar수동으로 이 코드는 당신을 도울 것입니다.

func setNavBarToTheView() {
    let navBar: UINavigationBar = UINavigationBar(frame: CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: 64.0))
    self.view.addSubview(navBar);
    let navItem = UINavigationItem(title: "Camera");
    let doneItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.cancel, target: self, action: #selector(CameraViewController.onClickBack));
    navItem.leftBarButtonItem = doneItem;
    navBar.setItems([navItem], animated: true);
}

를 사용하는 사람들의 정답은 다음과 같습니다.

override func viewDidLoad() {
    super.viewDidLoad()
    self.navigationItem.title = "Your Text"
}

만약 당신이 가지고 있다면.NavigationController부에내된에 된.TabBarController하십시오.

super.tabBarController?.title = "foobar"

여기에 이미지 설명 입력

디버거 스크립트를 사용하여 이와 같은 문제를 디버그할 수 있습니다.치젤의 것을 시도해보기 pvc계층에 표시되거나 숨겨진 모든 보기를 인쇄하는 명령입니다.

일반적으로, 가장 좋은 방법은 다음과 같은 제목을 설정하는 것입니다.UIViewController함으로써, 이게함으써로렇,써,UINavigationItem또한 설정됩니다.이것은 으로 할당하고 보다 더 좋습니다.UINavigationBar그것은 아무 것과도 연결되어 있지 않습니다.

고객은 다음과 같은 이점과 기능을 놓치고 있습니다.UINavigationBar목적으로 설계되었습니다.다음은 도움이 될 수 있는 설명서 링크입니다.실제 막대와 에서 설정할 수 있는 다양한 속성에 대해 설명합니다.UINavigationItem.

다음 사항을 기억하십시오.

  1. 직접 배선하지 않으면 뒤로 버튼 기능이 손실됩니다.
  2. 기본 제공되는 "왼쪽에서 끌어서 뒤로 스와이프" 제스처가 사라집니다.

UINavigationController의 친구들은 네 친구들입니다.

스위프트 3

스토리보드의 탐색 모음(오브젝트 브라우저에서)과 함께 제공되는 탐색 제목 표시줄 항목에 대한 배출구를 만들었습니다.그런 다음 아래 라인을 고소했습니다.

navigationBarTitleItem.title = "Hello Bar"

탐색 컨트롤러에 내장된 페이지 보기 컨트롤러의 하위 보기 컨트롤러에서 제목을 변경하려면 다음과 같습니다.

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    self.parent?.title = "some title"
}

스토리보드에서 보기 컨트롤러에 탐색 모음을 만들지 않은 경우 이 작업이 수행됩니다.

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

스토리보드에서 보기 컨트롤러에 탐색 모음을 만든 경우 유용합니다.

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

뷰에서 DidLoad

내비게이션 컨트롤러?탐색Bar.topItem?제목 = "당신의 문자"

이것은 저에게 효과가 있었습니다.탐색 모음에 콘센트를 연결하고 상위 항목을 통해 제목에 액세스하기만 하면 됩니다.

navBar.topItem?.title = "Your Title Here"

Swift 4에서:

스위프트 4

override func viewDidLoad() {
    super.viewDidLoad()

    self.title = "Your title"
}

도움이 되었으면 좋겠네요, 잘 부탁드립니다!

사용하는 것을 선호합니다.self.navigationItem.title = "Your Title Here"위에self.title = "Your Title Here"탭 표시줄에서도 을 사용하므로 탐색 모음에 제목을 제공합니다.self.title제목을 변경합니다.다음 코드를 한 번 사용해 보십시오.

참고: 작업을 수행하기 전에 슈퍼 뷰 라이프사이클을 호출해야 합니다.

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        setupNavBar()
    }
}

private func setupNavBar() {
    self.navigationItem.title = "Your Title Here"
}

스위프트 5.1

탐색 막대 제목을 프로그래밍 방식 및 동적으로 설정

참고: 먼저 탐색 컨트롤러 항목을 에 추가합니다.ViewController그리고 그들의 것으로 가.ViewController.swift파일 및 이 파일을 복사하여 붙여넣기만 하면 됩니다.viewDidLoad().

navigationItem.title = "Your Title Here"

예.

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

언급URL : https://stackoverflow.com/questions/25167458/changing-navigation-title-programmatically

반응형