点击UIButton后显示UITableView

时间:2014-06-26 22:31:36

标签: ios objective-c uitableview

我有一个UITableView我想要隐藏,直到用户点按按钮searchButtonTapped。 (我也将此按钮用作IBAction。)

最初我正隐藏在viewDidLoad中看到的桌面视图,我想在点击按钮后显示它,但在点击搜索按钮后它没有显示出来。我错过了什么吗?对我来说,它似乎应该正常工作,点击按钮后刷新表格视图。

我的.h文件

@property (weak, nonatomic) IBOutlet UIButton *searchButtonTapped;
- (IBAction)searchButton:(id)sender;

.m文件

- (void)viewDidLoad
{
    [super viewDidLoad];

      self.tableView.hidden = YES;
}


- (void)buttonTapped:(id)sender {
    if (sender == self.searchButtonTapped) {
     self.tableView.hidden = NO;
      [self.tableView reloadData];
    }
}



- (IBAction)searchButton:(id)sender {

      [self searchSetup];
}

2 个答案:

答案 0 :(得分:1)

从您发布的一小段代码中无法分辨出来。在buttonTapped方法中添加NSLog语句,显示输入方法,输入 if 语句,searchButtonTapped的值和self.tableView的值。

然后,您可以判断方法是否被调用,if语句是否正在评估为true,以及表视图是否为非零。其中一件事可能是你问题的原因。

我猜是if语句错了。属性self.searchButtonTapped是什么类型的?发布声明该属性的代码。

根据名称,我猜猜搜索按钮是一个布尔值?

答案 1 :(得分:0)

您只声明了一个IBAction,用于方法searchButton

此方法调用searchSetup的方法。它的目的是什么?

- (IBAction)searchButton:(id)sender {

      [self searchSetup];
}

所以你必须为 buttonTapped 方法提供另一个IBAction,这是一种“无效”方法,而不是IBAction。或者你从storyBoard建立了这种联系,或者你必须以编程方式声明它:

[self.searchButtonTapped addTarget:self action:@selector(buttonTapped:) forControlEvents:UIControlEventTouchUpInside]