如果UITableView没有条目,则显示警报

时间:2012-05-08 20:28:53

标签: objective-c ipad uitableview ios5

在我的iPad应用程序中,如果在UITableView上没有条目或所有单元格都是空的,并且如果按下某个特定按钮,则应该有警报。在UITableView中检查所有单元格是否为空的条件是什么?

谢谢和问候

PC

5 个答案:

答案 0 :(得分:5)

检查数据源的数量。

例如,如果您使用的是数组myArrayData

if ([myArrayData count] == 0) {
    // Do code here
}

答案 1 :(得分:1)

除了亚当约翰逊的回答

如果您的数据来自核心数据,并且您正在实施NSFetchedResultController

if ([self.fetchedResultsController.fetchedObjects count] > 0) {
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"UIAlertView"
    message:@"My message" delegate:self cancelButtonTitle:@"Cancel"
    otherButtonTitles:@"OK", nil];
    [alert show];
    [alert release];
}

答案 2 :(得分:0)

您可以使用viewWillAppear方法检查您的要求。

如果按下你的按钮(我假设在不同的视图控制器上?)你可能想要在按下按钮时实际设置BOOL并在此视图控制器中引用它。

通常表视图使用数组(或某个对象)来保存它们的值,您只需检查(myarray.count> 0)是否有任何表格单元格。

如果您提供有关设置的更多信息,我很乐意更加具体地满足您的需求。祝你好运!

答案 3 :(得分:0)

如果您使用Core Data,您可以通过numberOfRowsInSection检测写入您的表的行数

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{

    id <NSFetchedResultsSectionInfo> sectionInfo = [[self.fetchedResultsController sections] objectAtIndex:section];

    if (sectionInfo.numberOfObjects == 0) {

              //Here you can use your code
    }

    return [sectionInfo numberOfObjects];
}

答案 4 :(得分:-1)

嗯,您可以枚举所有单元格,看看它们是否包含任何内容。例如:

BOOL isEmpty = false;
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:1]];
// Then depending on what kind of value you have in it...
if (cell.textLabel.text == @""){
// Keep going through the enumeration until there's actually something and then set isEmpty to true!
}