프로그래밍 방식으로 탐색 제목 변경
제목이있는 탐색 모음이 있습니다. 텍스트를 두 번 클릭하여 이름을 바꾸면 실제로 탐색 항목이라고 표시되어있을 수 있습니다.
다음과 같은 코드를 사용하여 텍스트를 변경하려고합니다.
declare navigation bar as navagationbar here
button stuff {
navigationbar.text = "title"
}
그것은 분명히 내 코드가 아니며 작동 방식을 보여줍니다.
버튼을 누를 때마다 제목을 변경하고 싶습니다.
표시되는 뷰 컨트롤러 의 제목 을 변경하여 제목을 변경합니다 .
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"
}
나는 이것이 효과가 있음을 발견했다.
navigationItem.title = "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
님의 친구입니다.
스위프트 3
스토리 보드의 탐색 모음 (오브젝트 브라우저에서)과 함께 제공되는 탐색 제목 표시 줄 항목의 콘센트를 만들었습니다. 그런 다음 아래 줄을 고소했습니다.
navigationBarTitleItem.title = "Hello Bar"
사용하는 사람에 대한 정답 swift4을 것
override func viewDidLoad() {
super.viewDidLoad()
self.navigationItem.title = "Your Text"
}
스위프트 4에서 :
스위프트 4
override func viewDidLoad() {
super.viewDidLoad()
self.title = "Your title"
}
도움이되기를 바랍니다.
NavigationController
내부에 내장 된 경우 TabBarController
아래를 참조하십시오.
super.tabBarController?.title = "foobar"
디버거 스크립트를 사용하여 이와 같은 문제를 디버깅 할 수 있습니다. 시도 드릴링의 pvc
계층 구조의 모든 보이는 / 숨겨진보기를 인쇄 명령을 사용합니다.
탭 표시 줄을 사용 하여 제목을 변경하기 때문에 탐색 표시 줄에 제목을 제공하기 위해 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"
}
탐색 컨트롤러에 포함 된 페이지보기 컨트롤러의 자식보기 컨트롤러에서 제목을 변경하려면 다음과 같이됩니다.
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.parent?.title = "some title"
}
참고 URL : https://stackoverflow.com/questions/25167458/changing-navigation-title-programmatically
'Programing' 카테고리의 다른 글
'div'의 알려진 속성이 아니기 때문에 'ngIf'에 바인딩 할 수 없습니다. (0) | 2020.05.28 |
---|---|
Jenkins를 제거하는 방법? (0) | 2020.05.28 |
android : 터치 이동시보기 이동 (ACTION_MOVE) (0) | 2020.05.28 |
SQLAlchemy에서 OR 사용 (0) | 2020.05.28 |
C # 타이머와 같은 WPF 타이머 (0) | 2020.05.27 |