2016-08-23 2 views
0

私はiPhoneアプリを持っており、普遍的なものにしようとしています。戻るボタンがUISplitViewController上で点滅 - >詳細セグ

スプリットビューコントローラを追加しました。マスターVCとディテールVCの両方がナビゲーションコントローラに組み込まれているので、ナビゲーションバーが両方同時に表示されます。displayModeButtonItem()とすべてを追加できます。

問題はiPhone上でVCの1つだけが一度に表示されている場合、詳細VCが埋め込まれている追加のナビゲーションコントローラは、戻るボタンがショー詳細セグエ。

違いは微妙ですが、実際に私を悩ませています。

は、ここではのない余分なナビゲーションコントローラをどのようになるのです:それはのように見えないGIFをで With navigation controller

Without navigation controller

そして、ここではそれがと、余分なナビゲーションコントローラをどのようになるのです実際のiPhoneと同じように悪いですが、その違いを見ることができます。それは、余分なナビゲーションコントローラのように、後ろの矢印が単独で表示され、その後、 "リーディング"ラベルが追いつく。一方、余分なナビゲーションコントローラがなければ、戻る矢印と「読書」ラベルが同時に表示されます(注意してください、あなたはそれを見るでしょう)。

私はセグを変更しようとしました。そのため、マスターVCのテーブルビュー行をタップすると、ナビゲーションコントローラをバイパスして実際の詳細VCにまっすぐに行きます。それは最初はうまくいくようでしたが、それは他の問題を引き起こしました。例えば、私がiPad上にいて、詳細VCの上に他のVCをプッシュしてから、マスターVC上の別の行をタップした場合、詳細VCは明示的に指示したとしてもルートVCにポップしませんdidSelectRowAtIndexPathにあります。

私はここで何か間違っているのですか、それともちょうどUISplitViewController quirkですか?誰かがそれを修正したり回避する方法を知っていますか?

ありがとうございます!

答えて

2

わかりました。

問題が起こっていたとき、私はVCのviewDidLoad私の詳細にこれを持っていた:

override func viewDidLoad() { 
    super.viewDidLoad() 
    self.navigationItem.leftBarButtonItem = splitViewController?.displayModeButtonItem() 
    self.navigationItem.leftItemsSupplementBackButton = true 
} 

をそして私は問題がleftBarButtonItemを設定することによって引き起こされたことに気づきました。だから私はこれをこれに変更しました。今は素晴らしいです:

override func viewDidLoad() { 
    super.viewDidLoad() 
    if self.splitViewController?.collapsed == false { 
     self.navigationItem.leftBarButtonItem = splitViewController?.displayModeButtonItem() 
     self.navigationItem.leftItemsSupplementBackButton = true 
    } 
} 
関連する問題