Форум программистов, компьютерный форум CyberForum.ru

Обновление UITableView после изменеия массива - Программирование iOS

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование iOS Начать изучение Xcode http://www.cyberforum.ru/ios-dev/thread1113593.html
Где можно найти хороший учебник или видеокурс про Xcode?
Программирование iOS Не знаю с чего начать Здравствуйте! Я начинающий, помогите мне пожалуйста с API. Нужно, чтобы приложение выдавало картинки, по тегам введенным в поисковой строке, с помощью API постороннего сервиса. Даже не знаю с чего начать. Буду рад любой полезной информации по этому поводу. Спасибо. http://www.cyberforum.ru/ios-dev/thread1112333.html
Програмное добавление элементов Программирование iOS
Добрый день! Подскажите, как в IOS програмно добавить элементы. Моя задча: есть массив string. Нужно что бы в цикле for друг за другом горизонтально создавались элементы(lable, textView или button. Пока не знаю что подойдет. В андроид использовал простой lable) в View. Текст в элементе может быть разный, и короткий и длинный. Вообщем должен получиться список, где для каждого элемента будет свое...
Создание CRM на iOS Программирование iOS
Добрый день! Хотел бы поинтересоваться, что посоветуете почитать и от чего можно оттолкнутся. Так как это у меня будет первое приложение на iOS системе. Есть у веб CRM написанная на PHP. Хотелось бы сделать приложение под iphone. Будет тот же функционал, что и веб + телефонная книга.
Программирование iOS Массив в массиве http://www.cyberforum.ru/ios-dev/thread1107537.html
Уважаемые форумчане, подскажите пожалуйста как поступить. Есть UITableView который "заполняется" текстом из массива типа NSArray (самый обычный вида @"text", нужно что бы при нажатии на конкретную строку выводился соответсвующий массив, а он бы в свою очередь открывал обычное окно с подробным описанием. Как бы это все оформить правильно, т.к. 1-ый массив имеет более 200 строк, а 2-о2 около 600
Программирование iOS CoreAnimation, прозрачность CALayer Всем привет! Наконец-то дошли руки до CoreAnimation. Начал выполнять разные стартовые уроки, сделал вот такие веселые вращающиеся орбиты, по следующей статье: http://www.verious.com/article/animating-interfaces-with-core-animation-part-1/ Потом решил заменить "планеты" реальными картинками, чтобы было интересней, но получилось, что орбита проступает сквозь планету. Вот, получается такой... подробнее

Показать сообщение отдельно
petrovichtim
0 / 0 / 0
Регистрация: 27.10.2013
Сообщений: 26

Обновление UITableView после изменеия массива - Программирование iOS

09.03.2014, 11:39. Просмотров 838. Ответов 2
Метки (Все метки)

Добрый день дорогие товарищи!
Помогите пожалуста новичку разобраться с обновлением таблицы.
В начале работы получаю массив из базы данных и отображаю его в таблице, потом делаю поиск по БД и обновляю массив, но таблица никак не хочет обновляться.
Вот ViewController.h
Objective-C
1
2
3
4
5
6
7
8
#import <UIKit/UIKit.h>
 
@interface ViewController : UIViewController
{   
    NSMutableArray *_items;
}
 
@end
Вот ViewController.m
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
implementation ViewController
 
- (void)viewDidLoad
{
    [super viewDidLoad];
    [self loadItems:NULL];
}
 
- (void)viewDidUnload
{
    [super viewDidUnload];
    [_items release];
}
-(void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
{
    [searchBar resignFirstResponder];
    [self loadItems:searchBar.text];
    [self.view endEditing:YES];
}
 
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}
 
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}
 
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return [_items count];
}
 
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    //для возврата ячейки мы используем один ее экземпляр, если он не создан, создадим
    //здесь "Cell" это придуманный нами для повторного использования идентификатор ячейки
    NSString *cellIdentifier = @"Cell";
   // NSString *cellIdentifierBur= @"CellBur";
    
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
    
    if (cell == nil)
    {
        //здесь можно не просто создать ячейку, можно добавить в нее даже картинки
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellIdentifier] autorelease];
    }
    
    //в indexPath.row нам передают номер строчки для отображения
    tr_word *item = [_items objectAtIndex:indexPath.row];
    //NSString *item = [_items objectAtIndex:indexPath.row];
    //мы же в label выведем название животного
    cell.textLabel.text = item.rus_word;
    cell.detailTextLabel.text = item.bur_word;
    return cell;
}
 
 
- (void)loadItems:(NSString*) sTemp
{
    //определяем путь к файлу с базой
    NSString *path = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"test.db"];
    //создаем подключение к базе
    FMDatabase *database;
    database = [FMDatabase databaseWithPath:path];
    database.traceExecution = true; //выводит подробный лог запросов в консоль
    [database open];
    
    if (sTemp==NULL){
        _items = [[NSMutableArray alloc] init];
 
    //выполняем выборку из таблицы words
    FMResultSet *results = [database executeQuery:@"select * from words order by rus_word"];
    while([results next]) {
        
        tr_word *tr_words =[[tr_word alloc] init];
        tr_words.rus_word=[results stringForColumn:@"rus_word"];
        tr_words.bur_word=[results stringForColumn:@"bur_word"];
        [_items addObject:tr_words];
        
        //1NSString *name = [results stringForColumn:@"rus_word"];
        //atIndex - текущее кол-во элементов, чтобы новый элемент добавлялся в конец списка
       //1 [_items insertObject:name atIndex:[_items count]];
    }}
    else{
        
        FMResultSet *results = [database executeQuery:[NSString stringWithFormat:@"SELECT count(*) as cnt FROM words WHERE rus_word like '%@%%'", sTemp]];
        int *number_row = 0;
        [results next];
        number_row = [results intForColumn:@"cnt"];
        
        if(number_row ==0){
        // сделать тоаст  не нашел
        }
            else{
                FMResultSet *results = [database executeQuery:[NSString stringWithFormat:@"SELECT * FROM words WHERE rus_word like '%@%%'", sTemp]];
                _items = [[NSMutableArray alloc] init];
                while([results next]) {
                tr_word *tr_words =[[tr_word alloc] init];
                tr_words.rus_word=[results stringForColumn:@"rus_word"];
                tr_words.bur_word=[results stringForColumn:@"bur_word"];
                [_items addObject:tr_words];}
               }
    }
    
    //удаляем подключение к базе
    [database close];
}
 
@end
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru