如何在UItoolbar中检查UIbarbutton类

时间:2013-09-13 06:54:58

标签: ios uibarbuttonitem uitoolbar subviews

我正在使用带有UIbarButton项目的工具栏,我已经为此提供了标签,在一个场景中我需要获取工具栏的所有子视图并禁用一个按钮

                    for (id toolBarSubView in [self.topToolBar subviews]) {

                        NSLog(@"toolBarSubView details %@",toolBarSubView);

                        if ([toolBarSubView isKindOfClass:[UIBarButtonItem class]] && [toolBarSubView tag] == 103) {
                            UIButton* backButton = (UIButton*)toolBarSubView;
                            backButton.enabled = YES;
                        }
                        else if([toolBarSubView isKindOfClass:[UIBarButtonItem class]] && [toolBarSubView tag] == 102)
                        {

                            UIButton* navigationTitle = (UIButton*)toolBarSubView;
                            navigationTitle.enabled = NO;
                        }
                        else if([toolBarSubView isKindOfClass:[UIBarButtonItem class]] && [toolBarSubView tag] == 104)
                        {
                            UIButton* infoButton = (UIButton*)toolBarSubView;
                            infoButton.enabled = NO;
                        }

我正在使用上面的代码,我试图找到像这样的类名[toolBarSubView isKindOfClass:[UIBarButtonItem class]

但条件是失败没有条件是成功,我必须在控制台中的哪一类是这样的事情 2013-09-13 12:15:35.943收据[1544:60b] toolBarSubView详细信息> 2013-09-13 12:15:35.945收据[1544:60b] toolBarSubView详细信息> 2013-09-13 12:15:35.947收据[1544:60b] toolBarSubView详细信息>

1 个答案:

答案 0 :(得分:0)

如果在UIToolBar中将UIButton放在UIToolBar而不是UIBarButtonItem中,默认情况下UIButton属于UIBarButtonItem。然后你可以像这样检查,

if([toolBarSubView isKindOfClass:[UIButton class]] && [toolBarSubView tag] == 10)
{}

如果要检查UIToolbar中的特定UIBar按钮项,请执行此操作

NSArray *barButtons = [self.topToolBar items];
    for(UIBarButtonItem *myBarButton in barButtons)
    {
        NSLog(@"%d",myBarButton.tag);
        if(myBarButton.tag == 103)
        {}
    }