如何在numberofrow(TableView)为1时弹出UIAlertView

时间:2015-04-13 01:58:31

标签: objective-c uialertview

我有一个'添加'按钮来创建新的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

3 个答案:

答案 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];
}
}