2013-09-25 2 views
7

splitviewコントローラを子ビューコントローラとして追加しようとしています。親ビューコントローラはナビゲーションコントローラです。ナビゲーションバーは親ビューコントローラのために隠されていて、iOS 6標準としてステータスバーを表示したかったのです。私はsplitviewコントローラから別のビューコントローラにプッシュしたいので、子ビューコントローラとしてsplitviewコントローラを追加しました。iOS7 UISplitViewControllerステータスバー

問題私は、私がsplitviewコントローラを追加しているときに、コンテンツにステータスバーが重なっています。マスタービュー、detailview、parentview、splitviewのためのedgesForExtendedLayoutをUIRectEdgeNoneに設定しても動作していないようです。

ステータスバーとステータスバーをios 6標準と重複させないようにするための解決方法を教えてください。

私はMGSplitViewControllerでやってみましたが、同じ問題に直面していました。

ありがとうございました。

+0

同じ問題があります。好奇心が強い。 Apple推奨の技術はSplitViewControllerでは動作しないようです。たとえば、 https://developer.apple.com/library/ios/qa/qa1797/_index.html –

+0

を参照してください。私もUISplitViewControllerで同じ問題を抱えています。あなたのように、すべての可能なView ControllerのedgesForExtendedLayoutを無駄に設定しようとしました。ありがとう。 –

答えて

0

あなたが言う:

私は子ビューコントローラとして分割ビューコントローラを追加しようとしています。

UISplitViewControllerをrootViewControllerとして設定していますか?そうでなければ、なぜそれが変わっているのかもしれない。

UISplitViewControllersがこのように動作するように設計されていないが、https://stackoverflow.com/a/2642701/383603

この回答を参照してください私は、カスタム分割ビューコントローラを作成するために、コンテナビューコントローラを使用します。ここで良いリンクのhttps://developer.apple.com/library/ios/featuredarticles/ViewControllerPGforiPhoneOS/CreatingCustomContainerViewControllers/CreatingCustomContainerViewControllers.html

ロード:Container View Controller Examples

明らかに少し迷惑をかけて再作成する必要がありますが、少なくともあなたはその動作を完全に制御します。

0

私はviewcontrollers親を使用する必要があり、有効なナビゲーションコントローラを持つ子があなたを助けるかもしれないと思う。そうでない場合は、これを試してくださいtutorial。 これは私に多くの助けになります、私はあなたも同様にそれを助けることを願っています。

1

私はまったく同じ問題を抱えており、この問題を解決することができました。私は最初の2つのタブのそれぞれに異なるUISplitViewControllerを持つルートにUITabBarControllerを持っています。詳細ビューの一部については、上部のナビゲーションバーと下部のタブバーの両方と重複していました。

私はedgesForExtendedLayoutも最初は成功せずに設定しようとしましたが、できるだけ早く有効にするために設定する必要があります。あなたは正確にあなたのプロパティを設定していた場所をあなたの質問で指定していないので、これもあなたを助けることを望んでいます:edgesForExtendedLayoutUIRectEdgeNoneにUIViewControllerの-viewDidLoadに設定してください。

これは-viewWillLayoutSubviewsでこれを行うには、以前の試みは全く効果がなかった、私のためにそれを修正したコードです:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    // Prevent detail screen from sitting underneath navigation bar and tab bar: 
    self.edgesForExtendedLayout = UIRectEdgeNone; 
} 

・ホープ、このことができますが...

Erik