【问题标题】:View is not adjusting itself after hiding Tabbar隐藏标签栏后视图不调整自身
【发布时间】:2011-07-21 10:45:01
【问题描述】:

我有一个 UITabbar 有 5 个这样的标签

现在我想在点击 Feed 选项卡时隐藏 UITabbar。我想在那里显示全屏。我可以隐藏标签栏,但 Feed 屏幕的 UIView 没有自行调整,我可以在 UITabBar 的位置看到空白。我在隐藏 UITabbar 后设置了视图框架,但它也不起作用。如何在添加到 UITabbar 的 UIViewController 类中获取 UITabbarController 的对象,以便调用 UITabbarController 的委托方法。例如,如何在 Feed 类中拥有 UITabbarController 的对象。请帮助!如果我不清楚,请告诉我。 谢谢-

【问题讨论】:

  • 隐藏标签栏后是否尝试调用[myView setNeedsDisplay];

标签: iphone


【解决方案1】:

添加到 Ariel 答案,当您从笔尖加载它时,您需要将“hidesBottomBarWhenPushed”属性设置为 YES。 如果您从笔尖加载,则调用“initWithCoder”-方法,您只需要在那里设置该属性。 希望对您有所帮助。

【讨论】:

  • 谢谢!这对我有用。因为,Ariel 在你之前回答了,所以我应该接受他的回答,但我对你的回答投了赞成票!
【解决方案2】:

尝试在 Feed 类实现的 -(id)initWithCoder:(NSCoder *)aDecoder; 中添加 self.hidesBottomBarWhenPushed = YES;,如下所示:

-(id)initWithCoder:(NSCoder *)aDecoder{
    self = [super initWithCoder:aDecoder];
    if(self){
        self.hidesBottomBarWhenPushed = YES;
        //more of your initialization code...
    }
    return self;
}

它应该在-(id)initWithCoder:(NSCoder *)aDecoder; 而不是-(id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil;,因为您的视图是由应用程序从 .xib 文件加载的。

【讨论】:

  • 谢谢爱丽儿!它对我有用。三天以来,我一直在为此苦苦挣扎。谢谢!
【解决方案3】:

隐藏标签栏时尝试设置 self.navigationController.view.frame 的大小。
您可以使用 [[UIScreen mainScreen] bounds] 获取全屏尺寸。

【讨论】: