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

Objective-C

Войти
Регистрация
Восстановить пароль
 
Surfaker
3 / 3 / 1
Регистрация: 01.04.2014
Сообщений: 118
#1

Передача переменных прогресс бару другого класса - Objective-C

21.11.2014, 01:35. Просмотров 837. Ответов 0
Метки нет (Все метки)

Доброго времени суток! Хочу задать вопрос - как мне из класса одного метода передать переменную в метод другого класса?
У меня есть класс ячейки таблицы в которой есть прогресс бар
DMTableViewCell.h
Objective-C
1
2
3
4
5
6
@interface DMTableViewCell : UITableViewCell
 
@property (strong, nonatomic) UIProgressView* progressBar;
@property (strong, nonatomic) UILabel* nameOfDocumentLabel;
 
@end
в имплементации пусто.

Есть таблица, обьявленная глобально во ViewController'e.
В методе tableView:cellForRowAtIndexPath создаю объект класса DMTableViewCell и вставляю в ячейку прогресс бар
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
-(DMTableViewCell*) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString* identifier = @"cell";
    DMTableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:identifier];
    if (!cell) {
        cell = [[DMTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
    }
    
    cell.progressBar = [[UIProgressView alloc] initWithFrame:CGRectMake(cell.bounds.size.width/2+10,
                                                                        cell.bounds.size.height/2,
                                                                        120,
                                                                        5)];
    [cell addSubview:cell.progressBar];
    return cell;
}
вот хедер контроллера
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#import <UIKit/UIKit.h>
#import "DMTableViewCell.h"
 
@interface ViewController : UIViewController <UITableViewDataSource, UITableViewDelegate, UITextFieldDelegate>
 
@property (strong, nonatomic) UITableView* tableView;
@property (strong, nonatomic) UITextField* searchField;
@property (strong, nonatomic) NSMutableArray* countOfRows;
@property (strong, nonatomic) UIButton* downloadButton;
@property (strong, nonatomic) NSMutableData *objectData;
@property (assign, nonatomic) CGFloat sizeOfPath;
@property (assign, nonatomic) long long expectedMBytes;
 
@end
и есть методы, которые отвечают за скачивание файла (NSURLConnection) и за размеры скачанного-оставшегося и тд. переменные эти объявлены пропертями в хедере контроллера.
Вопрос - как передать эти значения прогресс бару?
З.Ы. tableView:cellForRowAtIndePath находится в имплементации контроллера.
З.Ы.Ы. вот методы скачки
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
    [self.objectData appendData:data];
    self.sizeOfPath = (CGFloat)[self.objectData length];
    NSLog(@"data has recieved %.1f", self.sizeOfPath/1000000);
    CGFloat progress = self.sizeOfPath/self.expectedMBytes;}
 
-(void)connection:(NSURLConnection*)connection didReceiveResponse:(NSURLResponse*)response {
    self.expectedMBytes = [response expectedContentLength];
    NSLog(@"%lld", self.expectedMBytes);
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
    //NSString *fileName = @"/Users/evgeniaazarova/Library/filename";
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *fileName = [paths objectAtIndex:0];
    [self.objectData writeToFile:fileName atomically:YES];
    NSLog(@"download finished");
    [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
}
З.Ы.Ы.Ы. если создавать отдельный прогресс бар (не в ячейке таблицы) то он работает хорошо и прогресс у него работает вот так
Objective-C
1
self.progressBar.progress = self.sizeOfPath/self.expectedMBytes;
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2014, 01:35     Передача переменных прогресс бару другого класса
Посмотрите здесь:
Objective-C Передача инициализированных переменных из одного класса в другой (objective c, XCODE 5.0.2)
Вызов метода из другого класса Objective-C
Objective-C Как получить доступ к изменению переменной из другого класса?
Objective-C Передача информации из текстбоксов одного окна в таблицу другого окна
Objective-C Долгое нажатие на кнопку с прогресс-баром
Возможно ли обращение к прогресс бару в строке состояния? VBA
Создание потока thread по кнопке,задание приоритета и отслеживание по прогресс-бару C#
Передача значения переменной из метода одного класса в метод другого класса C#
Передача данных из другого класса C#
Передача getText() в execute() другого класса Java SE
передача сигнала слоту другого класса C++ Qt
Передача переменных из класса форме C#

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru