首页 文章

iOS 5 UINavigationBar删除子视图(图像子视图)删除导航栏

提问于
浏览
9

在我的应用程序中,在iOS 4上运行正常导航棒从iOS 5开始消失了 . 这就是我认为导致的问题:我在RootViewController中删除子视图viewWillAppear方法:

for(UIView* view in self.navigationController.navigationBar.subviews)
    {
        if ([view isKindOfClass:[UILabel class]]) 
        {
            [view removeFromSuperview];
        }
        if([view isKindOfClass:[UIImageView class]])
        {
            [view removeFromSuperview];
        }
    }

我这样做是因为我推入导航控制器的第二个视图控制器将图像和标签添加到导航栏,我必须在弹出视图时将其删除 . 在iOS 5中,上面的代码删除了navigationBar . 如何解决这个或正确的方式来支持iOS4和iOS 5?

2 回答

  • 6

    您可以为其各自的UIKit类创建添加的视图子类,并检查这些特定的子类 . 实际上,为了拥有最清晰,最易读的代码,您应该将导航控制器和导航栏子类化,以允许绘制自定义图像和标签,以便您可以简单地将背景图像和前景标签设置为nil . 这需要一点时间才能完成,但最终结果将更加可扩展 .

  • 0

    setTag为那些图像和uilabel然后从上面的代码中删除它做了伎俩 .

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

相关问题