이 튜토리얼에 따라 statusBar smoothly hide statusBar을 부드럽게 숨기고 연습 프로젝트에서 사용할 때 모든 것이 잘 작동합니다. SplitVC가 없지만 tabBar가 있고 navVC & tableView를 사용하는 코드는 모두 프로젝트에서 사용됩니다. 나는 성공적으로 그것을 나타낼 수 있습니다/사라집니다.Swift iOS -SplitViewController로 StatusBar를 숨기지 않겠습니까?
저는 실제 프로젝트에서 iPad 용 SplitViewController를 사용하고 있습니다. statusBar가 숨기지 않을 SplitViewController 링크의 지시를 구현할 때 나타났습니다. 그런 다음 Apple의 기본 MasterDetailApp을 사용하여 새로운 프로젝트를 만들었습니다. 잘못된 작업을하지는 않았지만 제대로 작동하지 않습니다. 나는 애플의 원래 모든 코드를 유지 만/상태 표시가 나타나게 나는 View controller-based status bar appearance
을 추가 info.plist
에
사라지고 나는 보라색을 추가 스토리 보드에
YES
로 설정하는 데 필요한 방법에 추가 버튼을 DetailVC로 이동하여 statusBar 사라짐을 트리거합니다. 나는 또한 backBar 버튼이 사라지거나 다시 나타나게하는 방법을 추가했습니다.
statusBar가 DetailVC 장면에서 사라지거나 사라지게 만드는 모든 방법을 추가했습니다.
는 내가 마스터 현장에서 플러스 버튼을 클릭
상태 표시 및에서는 backButton이 다시 확인하기 위해 현장에 tapGesture을 추가, 날짜가 등장 그것을 클릭하여 DetailVC로 가고, 보라색 buttonPressed
을 눌러 statusBar와 backButton을 감추었지만 backButton 만 감추어졌습니다. 나는 배경을 만지고 backButton이 다시 나타납니다. statusBar는 움직이지 않습니다.
class DetailViewController: UIViewController {
//MARK:- Apple's code
@IBOutlet weak var detailDescriptionLabel: UILabel!
func configureView() {
if let detail = detailItem {
if let label = detailDescriptionLabel {
label.text = detail.description
}
}
}
override func viewDidLoad() {
super.viewDidLoad()
configureView()
// make backButton and statusBar reappear when scene is tapped
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(showBackButtonAndStatusBar))
view.addGestureRecognizer(tapGesture)
}
var detailItem: NSDate? {
didSet {
configureView()
}
}
//MARK:- Outside of the tapGesture in viewDidLoad everything below here is what I added
// bool to determine wether to hide the statusBar or not
var statusBarShouldBeHidden = false
// api method to allow the staus bar to be hidden
override var prefersStatusBarHidden: Bool{
return statusBarShouldBeHidden
}
// api method to animate status bar appearance/disappearance
override var preferredStatusBarUpdateAnimation: UIStatusBarAnimation{
return .slide
}
@IBAction func buttonTapped(_ sender: UIButton) {
// 1. hide backBar button
navigationItem.setHidesBackButton(true, animated: false)
// 2. set bool to true
statusBarShouldBeHidden = true
UIView.animate(withDuration: 0.25){
// 3. api method to allow the statusBar to disappear
self.setNeedsStatusBarAppearanceUpdate()
}
}
//called when background is touched and added to tapGesture in viewDidLoad
@objc func showBackButtonAndStatusBar(){
// 1. set bool to false
statusBarShouldBeHidden = false
UIView.animate(withDuration: 0.25){
// 2. bring statusBar back
self.setNeedsStatusBarAppearanceUpdate()
}
// 3. bring backButton back
navigationItem.setHidesBackButton(false, animated: true)
}
}
가 어떻게이 SplitViewVC 나를 상태 표시 줄을 숨길 수 있도록 얻을 수 있습니까?
흥미 롭지 만 앱 (기본 설정)을 설정하면 숨길 수 있습니다. – Jageen
해결 했습니까? – Jageen
@ Jageen 나는 실제로 그것에 지쳐서 상태 표시 줄을 유지하기로 결정했다. SplitViewController는 내 iOS 시간에 모든 두통의 가장 큰 골칫거리가되어야합니다. SplitViewController 자체에서 변경해야하지만 SplitVC에 연결된 모든 자식 VC에 응용 프로그램을 적용하는 것이 문제 일 것입니다. 그 때 나는 "그것을 잊어 버려라."라고 말했을 때 –