【发布时间】:2011-04-30 11:54:25
【问题描述】:
我正在尝试将导航栏定位在屏幕顶部下方。
我在viewWillAppear 中尝试过以下操作:
self.navigationController.view.frame = CGRectMake(0.0, 54.0, 320.0, 426.0);
self.navigationController.navigationBar.frame = CGRectMake(0.0, 0.0, 320.0, 44.0);
问题是它似乎只在第一次显示视图时起作用。如果您转到另一个选项卡并返回,导航栏位于屏幕顶部。当 iPhone 旋转时也会发生这种情况。
我应该尝试调整导航控制器框架,还是应该尝试将导航控制器添加到屏幕顶部下方的另一个视图?
【问题讨论】:
-
使用 Interface Builder 来做这件事怎么样?看来我可以在导航栏中拖动到视图中的任何位置。不过,我不确定是否可以将导航控制器挂接到此。
-
如果我在 IB 中使用 UINavigationController,它只会把它放在视图的顶部。来自 UINavigationController 类参考:@property(nonatomic, readonly) UINavigationBar *navigationBar 讨论 允许修改导航栏的 barStyle 或半透明属性,但绝不能直接更改其框架、边界或 alpha 值。要显示或隐藏导航栏,您应该始终通过导航控制器更改其 navigationBarHidden 属性或调用 setNavigationBarHidden:animated: 方法。
-
我最终使用 Interface Builder 在标签栏控制器中设置了一个带有图像的视图和一个带有导航控制器的导航栏。现在,当我在代码中推送另一个视图时,我错过了图像和导航栏。
-
在xibs中,根视图实际上并没有图片或导航栏,我要推送的视图也是如此。
标签: iphone uinavigationcontroller uinavigationbar