statusBar smoothly hide statusBarをスムーズに隠すためにこのチュートリアルに従っており、練習プロジェクトで使用するとすべて正常に動作します。 SplitVCを持たず、tabBarを持っていて、navVC & tableViewを使っていて、すべてうまくいけば他のプロジェクトのコードを使用します。それらの私は正常に表示/消滅させることができます。Swift iOS -SplitViewControllerでステータスバーを非表示にしませんか?
実際のプロジェクトでは、iPad用にSplitViewControllerを使用しています。リンクからSplitViewControllerへの指示を実装したときに、statusBarが隠れていないことに気付きました。私はAppleのデフォルトのMasterDetailAppを使って新しいプロジェクトを作って、間違っていないことを確認しましたが、そこではうまくいきません。私はAppleの元のコードのすべてを維持し、のみ/ステータスバーが表示されるように、私はView controller-based status bar appearance
を追加info.plist
で
消え、私は紫を追加したストーリーボードに
YES
にそれを設定する必要がメソッドに追加しますボタンをDetailVCに合わせて、statusBarの消滅をトリガーします。また、バックバーボタンが消える/再表示されるようにメソッドに追加しました
statusBarをDetailVCシーンに表示/非表示にするためのすべてのメソッドを追加しました。
私がステータスバーと戻るボタンが
を再表示させるためにシーンに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に幅広いアプリケーションを適用したいだろう。それは私が –