2012-05-08 3 views
-1

В моем приложении iPad, если в UITableView нет записей или все ячейки пусты, и если нажата конкретная кнопка, должно быть предупреждение. Каким может быть условие, чтобы проверить, все ли ячейки пусты в UITableView?Показать предупреждение, если UITableView не имеет записей

Спасибо и привет

PC

+0

Укажите код, пожалуйста. Как вы помещаете данные в таблицу? –

ответ

5

Проверьте счетчик вашего источника данных.

Например, если вы используете массив myArrayData:

if ([myArrayData count] == 0) { 
    // Do code here 
} 
-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! 
} 
+0

Это ужасно неэффективный способ сделать это. Эти ячейки генерируются из источника данных, источник данных должен проверяться, а не вид, который он создал. – MarkPowell

0

Метод viewWillAppear можно использовать для проверки ваших требований.

Если ваша кнопка нажата (я предполагаю, что на другом контроллере??), Вы можете фактически установить BOOL при нажатии кнопки и иметь ссылку на это в этом контроллере вида.

И, как правило, в представлениях таблицы используется массив (или некоторый объект) для хранения своих значений, вы можете просто проверить, есть ли (myarray.count> 0), чтобы увидеть, будут ли у вас какие-либо ячейки таблицы.

Если вы оставите больше информации о своей установке, я был бы рад быть более конкретным для ваших нужд. Удачи!

1

В дополнение к ответу Адама Джонсона

Если ваши данные поступают из Core Data и вы реализуете 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]; 
} 
0

Если вы используете CoreData, вы можете определить количество строк записанный на ваш стол по номеруOfRowInSection следует

- (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]; 
} 
+0

alertView повторяется таким образом, что не очень хорошо. – SilentStalker