0

UIbarButton アイテムを含むツールバーを使用しています。そのためのタグを指定しました。あるシナリオでは、ツールバーのすべてのサブビューを取得し、1 つのボタンを無効にする必要があります。

                    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 12:15:35.945 Receipts[1544:60b] toolBarSubView の詳細 > 2013-09-13 12:15:35.947 Receipts[1544:60b] toolBarSubView の詳細 >

4

1 に答える 1

0

UIToolBar の UIBarButtonItem の代わりに UIButton を UIToolBar に配置すると、デフォルトで 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)
        {}
    }
于 2013-09-13T07:15:27.977 に答える