탐색 컨트롤러의 도구 모음에 두 개의 막대 버튼 항목을 포함시켜야하는이 코드 조각이 작동하지 않는 이유가 확실하지 않습니다. 코드를 실행할 때 도구 모음 자체가 표시되지만 막대 단추 항목은 표시되지 않습니다. 여기서 내가 뭘 잘못하고 있니? 관심을 가져 주셔서 감사합니다.UIBarButtonItems가 Swift를 사용하여 프로그래밍 방식으로 생성되었습니다.
class NavigationController: UINavigationController {
override func viewDidLoad() {
super.viewDidLoad()
//Tool bar appearance
toolbar.barTintColor = UIColor.blackColor()
//Show tool bar by default
self.navigationController?.toolbarHidden = false
//Icons all located in images.xcassets
let homeImage = UIImage(named: "home")
let gameImage = UIImage(named: "logo")
var toolBarItems = [UIBarButtonItem]()
let homeButton = UIBarButtonItem(image: homeImage, style: UIBarButtonItemStyle.Plain, target: self, action: #selector(NavigationController.toHome))
homeButton.title = "Home"
let gameButton = UIBarButtonItem(image: gameImage, style: UIBarButtonItemStyle.Plain, target: self, action: #selector(NavigationController.toGame))
homeButton.title = "Game"
//Place the bar items in toolBarItems array
toolBarItems.append(homeButton)
toolBarItems.append(gameButton)
//self.toolbar.items = toolBarItems
self.toolbar.setItems(toolBarItems, animated: true)
}//End viewDidLoad
func toHome() {
let homeVC = HomeViewController(nibName: "HomeViewController", bundle: nil)
self.pushViewController(homeVC, animated: true)
}
func toGame() {
let gameVC = GameViewController(nibName: "GameViewController", bundle: nil)
self.pushViewController(gameVC, animated: true)
}
}
이 클래스는 실제로 다른 모든보기 컨트롤러가 의존하는 하나의 네비게이션 컨트롤러입니다. 내비게이션 컨트롤러에 대한 이해에서부터, 내비게이션 바 및 툴바가 있으며, 바 버튼 아이템을 임베딩 할 수 있습니다. 내가하려는 것은이 네비게이션 컨트롤러에 속하는 툴바에 바 버튼을 내장하는 것으로, 네비게이션 컨트롤러의 자식 인 모든 뷰 컨트롤러에 궁극적으로 표시되어야합니다. –
나는 그것이 단지 toolbarhidden = false이어야하는 이유를 지금 이해하고있다. 한 줄을 고쳤지 만, 여전히 바뀌었다. 툴바는 계속 표시되지만 막대 버튼은 표시되지 않습니다. –
저는 보통 스토리 보드에 이러한 모든 작업을 수행하게합니다. 이 경우에는 rootVieController가 자동으로 정의됩니다. 너 하나있어? 스토리 보드 또는 프로그래밍 방식으로 정의 되었습니까? NavigationController는이 루트 컨트롤러가있는 모든 것만을 표시하고 레이아웃합니다. – jboi