从uinavigationbar中删除子视图

时间:2013-02-12 09:06:38

标签: iphone ios uinavigationcontroller uiimageview subviews

您好要从UINavigation栏中删除SubViews我正在使用以下代码。我有标签,按钮和imageVIew作为导航栏中的子视图。

   for (UIView *view in self.navigationController.navigationBar.subviews) {


    [view removeFromSuperview];
}

当我运行它时,它正在删除我添加为

的navigationBar的backGround图像
     [self.navigationController.navigationBar setBackgroundImage:[UIImagem imageNamed:@"header-background"] forBarMetrics:UIBarMetricsDefault];

删除子视图后我添加了背景agin,但它没有添加。

有没有办法只删除导航栏的子视图而不删除背景。

2 个答案:

答案 0 :(得分:4)

快速选项是在要删除的视图的tag属性中添加一个值,并在删除子视图之前检查它,例如,假设您向自己添加非零值子视图:

for (UIView *view in self.navigationController.navigationBar.subviews) {
    if (view.tag != 0) {
        [view removeFromSuperview];
    }
}

答案 1 :(得分:1)

试试这个,

for (UIView *view in self.navigationController.navigationBar.subviews) {

if([view isKindOfClass:[UIImageView class]])
{
  //change your bar image
 }
else
 {
[view removeFromSuperview];
 }
 }