답변:
표시되는 뷰 컨트롤러 의 제목 을 변경하여 제목을 변경합니다 .
viewController.title = "some title"
일반적으로 이것은 뷰 컨트롤러에서로드 된 뷰에서 수행됩니다.
override func viewDidLoad() {
super.viewDidLoad()
self.title = "some title"
}
그러나 이것은 뷰 컨트롤러가 UINavigationController에 임베드 된 경우에만 작동합니다. 나는 높은 이 일을 대신 탐색 모음 자신을 만드는 것이 좋습니다. 탐색 표시 줄을 직접 작성해야하는 경우 다음을 수행하여 제목을 변경할 수 있습니다.
navigationBar.topItem.title = "some title"
에서 다음을 시도하십시오 viewDidLoad
self.navigationItem.title = "Your Title"
아래 코드는 Xcode 7에서 작동합니다.
override func viewDidLoad() {
super.viewDidLoad()
self.navigationItem.title = "Your Title"
}
또한 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);
}
일반적으로 가장 좋은 방법은에서 제목을 설정하는 것 UIViewController
입니다. 이렇게하면가 UINavigationItem
설정됩니다. 일반적으로 이것은 프로그래밍 방식으로 할당 UINavigationBar
되지 않은 것을 할당하고 초기화하는 것보다 낫습니다 .
의 이점과 기능 중 일부를 놓치게 UINavigationBar
되었습니다. 다음은 도움이 될 수있는 설명서 의 링크 입니다. 실제 막대 및에서 설정할 수있는 다양한 속성에 대해 설명합니다 UINavigationItem
.
명심하십시오 :
UINavigationController
님의 친구입니다.
탐색 컨트롤러에 포함 된 페이지보기 컨트롤러의 자식보기 컨트롤러에서 제목을 변경하려면 다음과 같이됩니다.
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.parent?.title = "some title"
}
스위프트 4에서 :
스위프트 4
override func viewDidLoad() {
super.viewDidLoad()
self.title = "Your title"
}
도움이되기를 바랍니다.
탭 표시 줄을 사용 하여 제목을 변경하기 때문에 탐색 표시 줄에 제목을 제공하기 위해 self.navigationItem.title = "Your Title Here"
over 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"
}