我有一个'添加'按钮来创建新的tableview行。行数限制为一个。
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// Return the number of rows in the section.
return 1;
}
当有一行时,我希望按钮弹出警报视图,而不允许创建新行。
但是我不知道如何在Button动作中实现'if condition'如下:
- (IBAction)add
{
if (condition)
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Title" message:@"Hi" delegate:self cancelButtonTitle:@"Done" otherButtonTitles:nil];
}
[alert show];
}
请帮忙!抱歉没有专业,我正在努力学习目标c
答案 0 :(得分:0)
我认为你需要一个mutableArray来保存UITableView的数据,并通过" numberOfRowsInSection"返回提供给UITableView的数组的计数。方法,当你想添加一行时,你只需将数据添加到数组中并重新加载tableView。
ps:你不能添加行但是返回1到UITableView
答案 1 :(得分:0)
你所要做的就是 -
- (IBAction)add
{
if ([self.tableView numberOfRowsInSection:0] == 1)
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Title" message:@"Hi" delegate:self cancelButtonTitle:@"Done" otherButtonTitles:nil];
}
[alert show];
}
答案 2 :(得分:0)
创建布尔变量 shouldCreateRow 。
将tableview数据源方法写为
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// Return the number of rows in the section.
if(shouldCreateRow){
return 1;
}
}
和动作方法
- (IBAction)add:(UIButton *)sender {
sender.selected=!sender.selected;
if (sender.selected && !shouldCreateRow) {
UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"Alert" message:@"One row created" delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil];
[alert show];
shouldCreateRow=TRUE;
[myTable reloadData];
}else{
UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"Alert" message:@"Already there is One row." delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil];
[alert show];
}
}