1

下のレイアウトからの相対的な制約で問題が発生しています。UITabBarViewController 内にいくつかのビューがあります。タブから別のビューに変更して最初のビューに戻ると、ビューコントローラーは下部レイアウトをタブバーとして認識せず、ビューの下部から認識します。

ここに問題をアップロードしました: https://sites.google.com/site/rveducationapps/layoutError.png?attredirects=0&d=1

私はすでに ViewDidAppear と ViewWillAppear を入れてみました:

[self.view layoutSubviews];
[self.view setNeedsUpdateConstraints];

サブビューを 2 つのケースでログに記録しました。右側のケースと、終了してビューに戻った後のサブビューです。

subviews:(
"<UIView: 0x146b2260; frame = (210 0; 814 712); autoresize = RM+BM; layer = <CALayer: 0x146b22c0>>",
"<UIButton: 0x146a9eb0; frame = (727 672; 287 30); opaque = NO; autoresize = RM+BM; layer = <CALayer: 0x146aa070>>",
"<UITableView: 0x151d3400; frame = (0 0; 210 761); clipsToBounds = YES; autoresize = W+H; gestureRecognizers = <NSArray: 0x146b14b0>; layer = <CALayer: 0x146ade20>; contentOffset: {0, 0}>",
"<_UILayoutGuide: 0x146b23b0; frame = (0 0; 0 20); hidden = YES; layer = <CALayer: 0x146b24a0>>",
"<_UILayoutGuide: 0x146b28a0; frame = (0 712; 0 56); hidden = YES; layer = <CALayer: 0x146b2910>>"

)

subviews:(
"<UIView: 0x146b2260; frame = (210 0; 814 768); autoresize = RM+BM; layer = <CALayer: 0x146b22c0>>",
"<UIButton: 0x146a9eb0; frame = (727 728; 287 30); opaque = NO; autoresize = RM+BM; layer = <CALayer: 0x146aa070>>",
"<UITableView: 0x151d3400; frame = (0 0; 210 817); clipsToBounds = YES; autoresize = W+H; gestureRecognizers = <NSArray: 0x146b14b0>; layer = <CALayer: 0x146ade20>; contentOffset: {0, 0}>",
"<_UILayoutGuide: 0x146b23b0; frame = (0 0; 0 20); hidden = YES; layer = <CALayer: 0x146b24a0>>",
"<_UILayoutGuide: 0x146b28a0; frame = (0 768; 0 0); hidden = YES; layer = <CALayer: 0x146b2910>>"

)

特に次の点で、いくつかの違いがあることがわかります。"<_UILayoutGuide: 0x146b28a0; frame = (0 712; 0 56); hidden = YES; layer = <CALayer: 0x146b2910>>"

しかし、私はそれを修正する方法がわかりません。

編集済み:修正したと思います。ストーリーボードで UIViewController を選択し、EXTEND EDGES->Under Bottom Bars オプションを無効にしました。

4

1 に答える 1

0

UITabBarViewControllerから新しいに移行し、その からUIViewControllerに戻ろうとする場合は、単純に に戻ることができます(セグエは、 のrootViewController戻ります)。tabBarControllerUIViewControllerUITabBarViewControllerUITabBarViewController

特定のタブに戻り、カスタム セグエをインスタンス化し、別の指定された VCを使用して別のタブに戻す必要がある場合、これはUITabBarViewControllerクラスまたはアプリケーションAppDelegate.mファイルで設定できます。

于 2014-01-07T00:38:20.570 に答える