我有一个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];
}
答案 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]