2013-09-25 73 views
1

我從底部佈局得到一些約束相對約束的問題。 UITabBarViewController中有一些視圖。當我從選項卡切換到另一個視圖並返回到第一個視圖時,viewcontroller不會將底部佈局識別爲選項卡欄,而是從視圖底部識別。底部佈局約束問題

我在這裏上傳的問題:https://sites.google.com/site/rveducationapps/layoutError.png?attredirects=0&d=1

我已經嘗試過把在ViewDidAppear也viewWillAppear中:

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

我登錄子視圖在兩種情況下,正確的,之後我退出和返回給視圖:

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>>"

但我不知道如何解決它。

編輯: 我想我修好了。我選擇了Storyboard中的UIViewController,並禁用了EXTEND EDGES-> Under Bottom Bars選項。

回答

0

如果您從UITabBarViewController轉換到新的UIViewController,然後嘗試從UIViewController回到你tabBarController,那麼你可以簡單地SEGUEUITabBarViewController(該賽格瑞將帶你回到你的rootViewController爲您的UITabBarViewController)。

如果您需要轉換回一個特定的標籤,實例化一個定製賽格瑞,並使用指定的VC不同發送回不同的標籤,這可以在UITabBarViewController類或設置你的應用程序AppDelegate.m文件。