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

Передача данных из одного View Controller в другой посредством делегатов - Objective-C

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Objective-C Подсчитать количество выбранных ячеек http://www.cyberforum.ru/objective-c/thread1258354.html
Доброго времени всем, столкнулся с такой проблемой, мне нужно узнать сколько ячеек сейчас у меня выбраные, когда отжимаю их, тоесть едит мод таблицы, выбрано несколько ячеек и когда я одну из них отжимаю узнать сколько еще остались выбраными, кто-то сталкивался с таким?
Objective-C Цвет точки на ImageView по координатам Доброго времени суток. Подскажите, как получить цвет точки на определенном ImageView по координатам? Есть один нюанс: у меня два ImageView разных размеров накладываются друг на друга. Мне нужно определить цвет точки первой картинки, в момент когда она под второй(т.е. ее не видно). http://www.cyberforum.ru/objective-c/thread1256047.html
Objective-C Отличия С++ от objC
Я неплохо знаю С++, закончил пару книг, а также начинал изучать С#, но в один момент, моя жизнь перевернулась и я должен выучить ObjC. Будут-ли у меня сложности с изучением этого языка, то есть переход с С++ будет для меня болезненным? Я не могу найти в интернете отличия С++ от objC, был бы очень признателен тем, кто все-таки это сделает или сам подскажет.
Objective-C Хранение объектов в массиве
Добрый вечер! Стоит задача: создать матрицу с задаваемыми размерами строки и столбца и провести над ней операцию. При выполнении задания возникли 2 непреодолимые задачи. Гугл перерыл (включая на инглише), маны читал, ничего не помогает. Первый: можно ли создать массив из NSTextField'ов? По сути, тут надо объявить NSMutableArray из этих TextField'ов, но есть ли такая возможность? И как это должно...
Objective-C Неизвестный объект занимает всю область ячейки UITableViewCell http://www.cyberforum.ru/objective-c/thread1254823.html
Есть класс наследованный от UITableViewController в методе tableView:cellForRowAtIndexPath я получаю ячейку: cell = ;потом создаю картинку (UIImageView) и текст (UILabel) и вставляю их в ячейку с помощью addSubview но мои картинку и текст закрывает неизвестный белый объект, растянутый на всю ячейку, свои элементы я вижу только потому что они не помещаются в ячейке и выглядываю снизу что...
Objective-C Обработка пуша Всм доброго времени суток, вот возникла проблемма, не могу найти рабочее решение, картина такая, мне сервер присылает пуш с определенным типом, я проверяю тип пуша и по нему через локальную нотификацию выполняю какое либо действие, все работает только в состоянии активного приложения, если приложение свернуто либо выключено действия не происходит, если свернуто и приходит пуш по нажатию на пуш... подробнее

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

Передача данных из одного View Controller в другой посредством делегатов - Objective-C

21.09.2014, 15:24. Просмотров 1107. Ответов 0
Метки (Все метки)

Бьюсь вторую неделю.
Имеется два View Controller-а, которые переключаются через Tab Bar Controller. В одном View Controller-e выполняется основная работа, во втором - настройки программы.
Необходимо передать измененные пользователем настройки из второго View Controller-a первому.
Создал новые файлы:

KTsendData.h
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#import <Foundation/Foundation.h>
 
@protocol KTsendDataDelegate <NSObject>
@required
- (void)setPort:(int)data;
- (void)setStepZ:(int)data;
- (void)setSenceX:(int)data;
- (void)setSenceY:(int)data;
@end
 
@interface KTsendData : NSObject {
    id <KTsendDataDelegate> delegate;
}
@property (retain)id <KTsendDataDelegate> delegate;
@end
KTsendData.m
Objective-C
1
2
3
4
5
6
7
#import "KTsendData.h"
 
@implementation KTsendData
 
@synthesize delegate;
 
@end
Затем унаследовал этот протокол первым View Controller-ом (с основной работой)

KTFirstViewController.h
Objective-C
1
2
3
...
@interface KTFirstViewController : UIViewController <KTsendDataDelegate>
...
и реализовал методы, описанные в протоколе:

KTFirstViewController.m
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@implementation KTFirstViewController
- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    
    KTsendData *myProtocol = [[KTsendData new] init];
    myProtocol.delegate = self;
}
-(void)setPort:(int)data {
    port = data;
}
-(void)setSenceX:(int)data {
    senceX = (float)data;
}
-(void)setSenceY:(int)data {
    senceY = (float)data;
}
-(void)setStepZ:(int)data {
    stepZ = (float)data / 500.0;
}
Правильно ли я все сделал?
Если да, то как получить доступ ко всему этому из второго View Controller-a?

Добавлено через 20 часов 56 минут
Господа, почитал немного про KVO. Может в моем случае использовать KVO будет проще?
Во втором контролере есть элементы интерфейса, которые выделены в коде как свойства и засинтезированы:
Objective-C
1
2
3
4
@property (weak, nonatomic) IBOutlet UITextField *udpporttxt;
@property (weak, nonatomic) IBOutlet UISlider *speedZslider;
@property (weak, nonatomic) IBOutlet UISlider *senceXslider;
@property (weak, nonatomic) IBOutlet UISlider *senceYslider;
Может поставить на них наблюдателя из первого View Controller-a?
Вопроса три:
1. Нужно ли менять для них дополнительные параметры (atomic/nonatomic, copy/weak/strong, readwrite/readonly)?
2. Что лучше использовать в первом ViewControllere - notification или KVO?
Изменять значения из первого контролера я не буду, только нужно оперативно получать данные.
3. Правильно ли я понимаю, что во втором контролере (наблюдаемый) в методах, отслеживающих изменения значения этих контролов нужно добавить по строчке вида:
Objective-C
1
[[NSNotificationCenter defaultCenter] postNotificationName:nameNotification object:self];
, а в первом контроле (наблюдающем) в методе - (void)viewDidLoad необходимо запустить наблюдателя на каждое property, вида:
Objective-C
1
[[NSNotificationCenter defaultCenter] addObserver:object selector:@selector(observeNotification:) name:nameNotification object:nil];
, указав для каждого сообщения свой метод обработки?

Добавлено через 33 минуты
Ура, нотификация сработала, повесил в методе изменения значения каждого контрола вызов
Objective-C
1
[[NSNotificationCenter defaultCenter] postNotificationName:@"namenotif1" object:nil];
и в первом контроле повесил слушателя на каждое имя события со своим методом обработки.

Осталось понять, как передать значение переменной типа int в качестве объекта.

Добавлено через 1 час 36 минут
Вопросы сняты - все получилось. Передавал в качестве объектов сами контролы. Потом, зная их тип - вытаскивал значения
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru