objective c 如何在其他视图控制器中隐藏按钮

how to hide button in other view controller in objective c

-(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
    NewsScreen *news=[[NewsScreen alloc] initWithNibName:@"NewsScreen" bundle:nil];

    if (tabBarController.selectedIndex==2) {

        [news.btn setHidden: YES];

    }
    NSLog(@"%@", tabBarController);
}

我想隐藏来自另一个视图控制器的按钮。

    -(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {

            if (tabBarController.selectedIndex==2) 
            {
              NSUInteger *index=value; //assign value here
              UINavigationController *nv = [[tabBarController viewControllers] objectAtIndex:index];//index of your NewsScreen controller
              NSArray *array =[nv viewControllers];

              for (ViewController *vc in array)
              {
                if ([vc isKindOfClass:[NewScreen class]])
                {
                  [vc.btn setHidden:YES];
                }
              }

            }
            NSLog(@"%@", tabBarController);
        }

在你的 ViewController controller 中取一个 BOOL 变量并生成 属性。 synthesize 它也是。

然后这样做:

ViewController *vc = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
vc.check = YES;

viewdidload中这样写:

if(self.check)
    [mainbutton1 set hidden:YES];

更新

如果您只想隐藏按钮,请尝试:

在你的Viewdidload

        [button addTarget:self action:@selector(btnClicked) forControlEvents:UIControlEventTouchUpInside];

-(void)btnClicked
{
    [button setHidden:YES]; 
}

将您的代码更改为:

-(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {

    NewsScreen *news= (NewsScreen*) [tabBarController.viewControllers objectAtIndex:1]; // Replace 1 with your NewsScree View Controller's index thats your tab number - 1.

    if (tabBarController.selectedIndex==2) {
        [news.btn setHidden: YES];
    }
}