从 uinavigationbar 中删除子视图
Posted
技术标签:
【中文标题】从 uinavigationbar 中删除子视图【英文标题】:Removing subViews from uinavigationbar 【发布时间】:2013-02-12 09:06:38 【问题描述】:嗨,要从 UINavigation 栏中删除子视图,我正在使用以下代码。我在导航栏中将标签、按钮和 imageVIew 作为子视图。
for (UIView *view in self.navigationController.navigationBar.subviews)
[view removeFromSuperview];
当我运行它时,它正在删除我添加为的导航栏的背景图像
[self.navigationController.navigationBar setBackgroundImage:[UIImagem imageNamed:@"header-background"] forBarMetrics:UIBarMetricsDefault];
删除子视图后,我正在添加背景,但它没有添加。
有什么方法可以只删除导航栏的子视图而不删除背景。
【问题讨论】:
【参考方案1】:一个快速的选项是向您要删除的视图的tag
属性添加一个值,并在删除子视图之前检查它,例如,假设您向子视图添加一个非零值:
for (UIView *view in self.navigationController.navigationBar.subviews)
if (view.tag != 0)
[view removeFromSuperview];
【讨论】:
【参考方案2】:试试这个,
for (UIView *view in self.navigationController.navigationBar.subviews)
if([view isKindOfClass:[UIImageView class]])
//change your bar image
else
[view removeFromSuperview];
【讨论】:
以上是关于从 uinavigationbar 中删除子视图的主要内容,如果未能解决你的问题,请参考以下文章
如何从第一个视图控制器中的第二个 UIView 控制器中删除 UINavigationBar label.text?
如何将子视图添加到 UIViewController 将 UINavigationBar 推到后面
UINavigationBar 子视图隐藏了正确的 UIBarButtonItem