2013-03-05 2 views
-1

Я бы хотел отобразить предупреждение, если в таблицеView нет результатов. Я использую numberOfRowsInSection, как показано ниже, но предупреждение не отображается. Я также удалил оператор if, который проверяет счет, если с ним что-то не так. Кто-нибудь знает, почему предупреждение не отображается? Любая помощь будет большой. Благодаря!Отобразить предупреждение, если tableView numberOfRowsInSection == 0

if ([self.listItems count] == 0) 




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

if (tableView == self.searchDisplayController.searchResultsTableView) { 
    return [self.filteredListItems count]; 
} 

else { 
    return [self.listItems count]; 
    if ([self.listItems count] == 0) { 

    //CALL ALERT HERE  
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"No Results" message:@"No 
    results were found" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; 
    [alert show]; 

    }  
    } 
} 

ответ

2

Это не отображается, потому что вы возвращаетесь перед показом предупреждения:

else { 
    return [self.listItems count]; 
... 
+0

Спасибо! Это работает сейчас, но предупреждение отображается снова и снова. Есть ли легкое решение для этого или мне нужно создать какой-то bool, который будет отображаться только один раз? – Brandon

+0

Лучшая практика заключается не в том, чтобы отображать предупреждение в этом методе, поскольку оно вызывается несколько раз. Если вам нужно предупредить пользователя о том, что ничего не видно, вы можете сделать это, когда будете готовить источник данных и проверить, есть ли в нем какие-либо элементы, а если нет - покажите предупреждение. – graver

0

Смотрите проблема эта линия return [self.listItems count]; Причина ваша выполнение не выходит за рамки этого. Измените его на:

else 
{ 
    if ([self.listItems count] == 0) 
    { 
     //CALL ALERT HERE  
     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"No Results" message:@"No 
     results were found" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; 
     [alert show]; 
     return; 
    } 
    return [self.listItems count]; 
} 
0

Напишите заявление о возврате после проверки, если условие.

if ([self.listItems count] == 0) { 

    //CALL ALERT HERE  
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"No Results" message:@"No 
    results were found" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; 
    [alert show]; 

    } 
return [self.listItems count]; 
Смежные вопросы