您好要从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,但它没有添加。
有没有办法只删除导航栏的子视图而不删除背景。
答案 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];
}
}