-2

因此,我试图在 TableView.m 中隐藏一个按钮,并且每当我进行DidSelectRowAtIndex等于第二行的选择时,就会在 ViewController.h 中声明该按钮。

我的代码:

表视图.m:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    [popoverSpending dismissPopoverAnimated:YES];

    UITableViewCell *cell = (UITableViewCell *)[tableView cellForRowAtIndexPath:indexPath];
    if([self.delegate respondsToSelector:@selector(spendingButtonText:)]) {
        [self.delegate spendingButtonText:cell.textLabel.text];
    }

    if (indexPath.row == 2) {
        NSLog(@"2");
        AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; 
        appDelegate.vc=[[ViewController alloc] init];

        appDelegate.vc.button1.hidden = TRUE;

    }

    [self dismissViewControllerAnimated:YES completion:nil];
}

当我选择第二行时,它会跟踪 2,这是NSLog(@"2");. 但是,我的名为button1的按钮仍然可见。我的 TableView.m 是 ViewController 的一个类。如果您需要查看更多代码和错误编辑,请告诉我。

4

1 回答 1

0

当你这样做:appDelegate.vc=[[ViewController alloc] init];时,它会创建一个的类实例ViewController。您想要的是当前正在显示的该类的现有实例。只需删除该行并appDelegate.vc.button1.hidden = TRUE直接设置。

于 2013-05-27T11:34:53.133 回答