Форум программистов, компьютерный форум, киберфорум
Наши страницы

Objective-C

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

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

21.11.2014, 01:35. Просмотров 861. Ответов 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;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2014, 01:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Передача переменных прогресс бару другого класса (Objective-C):

Передача инициализированных переменных из одного класса в другой (objective c, XCODE 5.0.2) - Objective-C
Друзья помогите решить задачку! Я в этом деле новичек, поэтому прошу не винить за глупые вопросы)) Итак, создаю приложение для iPhone...

Передача переменных - Программирование iOS
Подскажите, пожалуйста, как с одного ViewController передать на другой несколько переменных? Пожалуйста, с примером)

Вызов метода из другого класса - Objective-C
Как вызвать метод описанный в другом классе?

Как получить доступ к объекту другого класса - Программирование iOS
Здравствуйте друзья. Прошу помощи по вопросу В главном viewController cоздаю объект Label и записываю в него текст ...

Как получить доступ к изменению переменной из другого класса? - Objective-C
Это наверное клупый вопрос, но я не могу его решить! создал таблицу с тремя элементами в основе лежит массив с тремя...

Передача информации из текстбоксов одного окна в таблицу другого окна - Objective-C
Доброго времени суток, пишу программу для mac os x, нужна подсказка, как сделать (не прошу делать, а прошу подсказать), чтобы при нажатии...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.11.2014, 01:35
Привет! Вот еще темы с ответами:

Возможно ли обращение к прогресс бару в строке состояния? - VBA
Всем привет. Вопрос в принципе сформулирован. При открытии/закрытии/сохранении прогресс бар появляется,а вот как бы его подстроить под свои...

Создание потока thread по кнопке,задание приоритета и отслеживание по прогресс-бару - C#
&lt;a target=&quot;_blank&quot; href=&quot;http://***********&quot;&gt;&lt;img src=&quot;http://s019.***********/i637/1703/d0/fa26cb5bb479.png&quot; /&gt;&lt;/a&gt; По кнопке...

Передача значения переменной из метода одного класса в метод другого класса - C#
Добрый вечер! Есть основная форма Form1 в которой есть метод private void button1_Click(object sender, EventArgs e) обрабатывающий...

Передача данных из другого класса - C#
Как передать данные в глобальные переменные из класса Class1.cs в Class2.cs? В метод - понятно как, а в глобальную не знаю. В метод: ...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

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