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

Программирование iOS/iPhone

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 29, средняя оценка - 4.76
Igor20
39 / 0 / 1
Регистрация: 10.12.2012
Сообщений: 5
#1

обращение к данным uiviewcontroller - Программирование iOS/iPhone

10.12.2012, 20:22. Просмотров 3693. Ответов 31
Метки нет (Все метки)

как взять текст из label.text из одного uiviewcontroller в другой? как обращаться к обьектам других вьюшек?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vorona
Peace 2 all shining faces
666 / 528 / 44
Регистрация: 05.03.2010
Сообщений: 1,271
10.12.2012, 23:12     обращение к данным uiviewcontroller #2
как-то так:
Objective-C
1
anotherViewController.someLabel.text = self.label.text;
ну а если поподробней, то в одном вьюконтроллере нужно создать другой либо получить его извне. И чтобы передать значения из вьюконтроллера A в B, то у вьюконтроллера B должен быть "публичный" метод либо свойство, в которое можно передать значение и там уже сделать с ним, что нужно
Igor20
39 / 0 / 1
Регистрация: 10.12.2012
Сообщений: 5
10.12.2012, 23:18  [ТС]     обращение к данным uiviewcontroller #3
Спасибо, за квалифицированный ответ.)))
zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
11.12.2012, 07:26     обращение к данным uiviewcontroller #4
anotherViewController.someLabel.text = self.label.text;
Фу какая гадость
MVC - вот, что Вас спасет.
Не нужно из одного лейбла ViewController'a передавать текст и сетить его в другой. Это очень, очень плохо.
Label должен быть скрыт, он не должен быть доступен во внешнем интерфейсе.
Для того, чтобы передавать данные нужно создать объект - модель, в которой будет храниться ваша информация, а дальше его уже и передавать. А контроллер будет связывать модель и отображение.
MVC
Igor20
39 / 0 / 1
Регистрация: 10.12.2012
Сообщений: 5
11.12.2012, 14:05  [ТС]     обращение к данным uiviewcontroller #5
можно что-нибудь на примере показать?
zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
11.12.2012, 16:55     обращение к данным uiviewcontroller #6
Что-нибудь:
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
//  User.h
//  Test
#import <Foundation/Foundation.h>
@interface User : NSObject
@property (nonatomic, copy) NSString *name;
@end
 
//
//  User.m
//  Test
#import "User.h"
@implementation User
@end
 
//
//  FirstViewController.h
//  Test
#import <UIKit/UIKit.h>
@interface FirstViewController : UIViewController
@end
 
//
//  FirstViewController.m
//  Test
#import "FirstViewController.h"
#import "UserAccountViewController.h"
#import "User.h"
@implementation FirstViewController
- (void)viewDidLoad
{
    [super viewDidLoad];
    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
    button.frame = self.view.bounds;
    [button setTitle:@"Push me!" forState:UIControlStateNormal];
    [button addTarget:self action:@selector(onPushMeButtonTap:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:button];
}
- (void)onPushMeButtonTap:(UIButton*)sender {
    UserAccountViewController *vc = [UserAccountViewController new];
    User *user = [User new];//Для примера, я создам User'a непосредственно перед передачей
    user.name = @"Alex";
    vc.user = user;
    [self.navigationController pushViewController:vc animated:YES];
}
@end
 
//
//  UserAccountViewController.h
//  Test
#import <UIKit/UIKit.h>
@class User;
@interface UserAccountViewController : UIViewController
@property(nonatomic, retain) User *user;
@end
 
//
//  UserAccountViewController.m
//  Test
#import "UserAccountViewController.h"
#import "User.h"
@interface UserAccountViewController ()
@property (nonatomic, retain) UILabel *usernameLabel;
@end
@implementation UserAccountViewController
- (void)viewDidLoad
{
    [super viewDidLoad];
    self.usernameLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 320, 30)];
    self.usernameLabel.text = [NSString stringWithFormat:@"My name is %@", self.user.name];
    self.usernameLabel.textAlignment = UITextAlignmentCenter;
    self.usernameLabel.center = self.view.center;
    [self.view addSubview:self.usernameLabel];
}
@end
Alex_pac
1282 / 688 / 8
Регистрация: 25.05.2011
Сообщений: 2,158
Записей в блоге: 51
11.12.2012, 21:51     обращение к данным uiviewcontroller #7
как взять текст из label.text из одного uiviewcontroller в другой? как обращаться к обьектам других вьюшек?
обычно используют общий синглтон класс либо NSUserDefaults для передачи данных между контроллерами

и в большинсве случаев ловят данные при didLoad либо didappear событиях

вот библия начинающего iOS программиста

Добавлено через 5 минут
будет связывать модель и отображение.
MVC
суть MVC состит в отделении представления от логики не более
другими словами есть UIStoryBoard где лежат шаблоны и есть классы (В большистве наследники UIViewController) которые этими "шаблонами" управляют
Vorona
Peace 2 all shining faces
666 / 528 / 44
Регистрация: 05.03.2010
Сообщений: 1,271
12.12.2012, 01:59     обращение к данным uiviewcontroller #8
Цитата Сообщение от zulkis Посмотреть сообщение
Фу какая гадость
ахах ну вы же так совсем запутаете человека здоровыми кусками кода, пусть просто освоится с сдк, а потом уже будет разбираться с паттернами и всем прочим, понятное дело никто так не делает но и лишним перегружать не стоит, имхо

Цитата Сообщение от Alex_pac Посмотреть сообщение
обычно используют общий синглтон класс либо NSUserDefaults для передачи данных между контроллерами
ниразу не видел такое, вот таким уж точно заниматься не стоит, если уже решили учить человека правильно писать.
т.е. есть у вас 50 контроллеров, и что, будете несчастным синглтоном все гонять? а для чего же тогда конструкторы, паблик методы и общепринятые паттерны?

Цитата Сообщение от Alex_pac Посмотреть сообщение
вот библия начинающего iOS программиста
а насчет библии, то я бы не стал тратить время на такие ресурсы, во-первых они устаревшие, а во-вторых это просто набор того, что усвоил некий человек во время изучения платформы, если учить так уже у самого источника в документации, а такие сайты использовать только чтоб подсмотреть что-то, ибо получается испорченный телефон либо просто грубый фильтр
Alex_pac
1282 / 688 / 8
Регистрация: 25.05.2011
Сообщений: 2,158
Записей в блоге: 51
12.12.2012, 06:53     обращение к данным uiviewcontroller #9
будете несчастным синглтоном все гонять
да вы батенька не вкурсе ваще

обращение к данным uiviewcontroller

паблик методы
как вариант тоже сойдут но ведь не всегда применимо

то я бы не стал тратить время на такие ресурсы, во-первых они устаревшие
с точки зрения русской документации то там все доступным языком написано. Устаревание там только в том что не применяется сборщик мусора.
zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
12.12.2012, 11:42     обращение к данным uiviewcontroller #10
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Vorona, учиться нужно погружением, имхо. И правильным вещам сразу. Пусть сложно, зато правильно.
Alex_pac, да Вы не в теме...
Все, что Вы написали, даже на "начинающий" уровень программиста под iOS, в котором MVC - основа основ для реализации UI, не тянет.
Цитата Сообщение от Alex_pac Посмотреть сообщение
Устаревание там только в том что не применяется сборщик мусора.
Вот это вообще к чему тут, непонятно. Какой сборщик мусора в iOS, Вы о чем вообще?

P.S. Картинка - жесть.
Из серии - создам 100500 вьюшек, а dataSource'ом будет AppDelegate... "И хочу чтобы они на UIWindow лежали. Все сразу." (С) "редиска"
Ужас то какой

P.P.S.
Цитата Сообщение от Alex_pac Посмотреть сообщение
вот библия начинающего iOS программиста
Библия начинающего(и опытного тоже) программиста - developer.apple.com
Alex_pac
1282 / 688 / 8
Регистрация: 25.05.2011
Сообщений: 2,158
Записей в блоге: 51
12.12.2012, 12:14     обращение к данным uiviewcontroller #11
Вот это вообще к чему тут, непонятно. Какой сборщик мусора в iOS, Вы о чем вообще?
обращение к данным uiviewcontroller

automatic Reference не о чем не говорит ?

MVC - основа основ для реализации UI
Опять же имхо. зависит от сложности. Если в приложении будут большие информационные потоки то придется выделить отдельно "модель" для повышения логичности архитектуры

в остальных случаях если приложение не работает с большими объемами данных то каждый контроллер представления по совместительству уже является и моделью

в некоторых случаях данные ваще лежат в одном-двух словарях NSMutableDictionary и этого бывает достаточно и не нужно отдельно выделять модель

Ужас то какой
при использовании UIStoryBoard технологии организации приложений не вижу сложностей
zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
12.12.2012, 13:33     обращение к данным uiviewcontroller #12
Цитата Сообщение от Alex_pac Посмотреть сообщение
automatic Reference не о чем не говорит ?
Читайте как осуществляется Memory Management и что делает конкретно ARC. Сборщика мусора в iOS в жизни не было.
Не нужно обманывать людей.
Цитата Сообщение от Alex_pac Посмотреть сообщение
Если в приложении будут большие информационные потоки то придется выделить отдельно "модель" для повышения логичности архитектуры
Чего??? А можно поподробнее с этого момента. Потому что имхо, но чем дальше в лес, тем больше мне кажется что графа "репутация" на данном форуме мало что значит.
По вашему "если в приложении "маленькие" информационные потоки" - оно должно быть нелогичным? Объяснитесь, будьте любезны.

Цитата Сообщение от Alex_pac Посмотреть сообщение
в некоторых случаях данные ваще лежат в одном-двух словарях NSMutableDictionary и этого бывает достаточно и не нужно отдельно выделять модель
Так обычно горорят те, кто больше 10 классов в проекте не наблюдал. Обычно студенты 3-4 курса. Бывает народ и старше. Но как правило они не пытаются учить людей и подсказывать изначально неверные вещи.

Цитата Сообщение от Alex_pac Посмотреть сообщение
при использовании UIStoryBoard технологии организации приложений не вижу сложностей
А при чем тут вообще сториБоард? Вы путаете мягкое с кислым. Когда был MVC, этого сториБоарда даже в планах не было.
Цитата Сообщение от Alex_pac Посмотреть сообщение
в остальных случаях если приложение не работает с большими объемами данных то каждый контроллер представления по совместительству уже является и моделью
Это у тех, кто не понимает для чего разделение нужно.

Цитата Сообщение от Alex_pac Посмотреть сообщение
в некоторых случаях данные ваще лежат в одном-двух словарях NSMutableDictionary и этого бывает достаточно и не нужно отдельно выделять модель
Такие авторы на govnokod постились не раз.
И еще такие цитаты напоминают мне о том, что существуют и "пыхапéры"(Не в обиду будет сказано высококвалифицированным web-разработчикам), которые везде используют php array(ассоциативно ясное дело), и считают это правильным.

P.S Вау, 666 пост. Злой пост. Мвахаха
Alex_pac
1282 / 688 / 8
Регистрация: 25.05.2011
Сообщений: 2,158
Записей в блоге: 51
12.12.2012, 14:38     обращение к данным uiviewcontroller #13
Читайте как осуществляется Memory Management и что делает конкретно ARC
пруфлинк, подтверждающий что ARC не сборщик мусора, в студию!

"если в приложении "маленькие" информационные потоки" - оно должно быть нелогичным
если в приложении малые информационные потоки то модель не надо выделять в отдельный класс.

Когда был MVC, этого сториБоарда даже в планах не было.
когда появился сториБоард , MVC стал стандартом дефакто ибо наглядно отображает структуру приложения

Это у тех, кто не понимает для чего разделение нужно.
примеры проектов с MVC в студию!

php array(ассоциативно ясное дело)
пыхаперы делятся на фреймворкщиков и low level программистов. последние пишут код напрямую а не через 10 абстрактных классов

а говнокодеры они и в Африке говнокодеры
zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
12.12.2012, 14:51     обращение к данным uiviewcontroller #14
Цитата Сообщение от Alex_pac Посмотреть сообщение
если в приложении малые информационные потоки то модель не надо выделять в отдельный класс.
Ваше право, но я с Вами в одном проекте отказался бы участвовать.

Цитата Сообщение от Alex_pac Посмотреть сообщение
когда появился сториБоард , MVC стал стандартом дефакто ибо наглядно отображает структуру приложения
Глупость написана. MVC это паттерн проектирования, а сториБоард это механизм разработки интерфейса программы.
Чувствуете разницу?

Цитата Сообщение от Alex_pac Посмотреть сообщение
примеры проектов с MVC в студию!
Выше читайте, я привел пример по просьбе ТС. Что-либо сложнее писать не вижу смысла.

Цитата Сообщение от Alex_pac Посмотреть сообщение
пруфлинк, подтверждающий что ARC не сборщик мусора, в студию!
Да хоть 2:
http://clang.llvm.org/docs/Automatic...eCounting.html
http://stackoverflow.com/questions/7900167/objective-c-2-0-garbage-collector-vs-automatic-reference-counter-in-ios-5-sdk
Аббревиатура ARC - "Automatic Reference Counter" - даже в переводе не звучит как сборщик мусора(Garbage Collector).
Alex_pac
1282 / 688 / 8
Регистрация: 25.05.2011
Сообщений: 2,158
Записей в блоге: 51
12.12.2012, 14:58     обращение к данным uiviewcontroller #15
MVC это паттерн проектирования
паттерн который подразумевает разделение представления от логики чем и является сториБоард и все остальное.

Да хоть 2:
ты не пишешь dealloc или release при использовании ARC => не освобождаешь память вручную => ARC это и есть сборщик мусора ибо больше не нужно вручную уничтожать экземпляры объектов
Igor20
39 / 0 / 1
Регистрация: 10.12.2012
Сообщений: 5
12.12.2012, 14:59  [ТС]     обращение к данным uiviewcontroller #16
Дорогие, сочувствующие))), благодарю Вас за такое пылкое участие в моем вопросе.
Считаю, что в Ваших ответах достаточно информации для дальнейшего понимания. Много нового для меня было описано на что необходимо обратить свое внимание. Считаю, что тема посему закрыта. Не сортесь)))).
zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
12.12.2012, 15:06     обращение к данным uiviewcontroller #17
Цитата Сообщение от Alex_pac Посмотреть сообщение
паттерн который подразумевает разделение представления от логики чем и является сториБоард и все остальное.
В общем Вы не видите отличия. И что значит "все остальное"?

Цитата Сообщение от Alex_pac Посмотреть сообщение
ты не пишешь dealloc или release при использовании ARC => не освобождаешь память вручную => ARC это и есть сборщик мусора ибо больше не нужно вручную уничтожать экземпляры объектов
Насчет "ты" - это отдельная история. Но насчет цитаты выше - ну что я могу сказать, не понимаете Вы что такое ARC, для чего он нужен, а главное, не видите причинно-следственной связи между компонентами, разделенными "=>" значками.

Igor20, а никто и не ссорится, просто отстаивание истины.
Alex_pac
1282 / 688 / 8
Регистрация: 25.05.2011
Сообщений: 2,158
Записей в блоге: 51
12.12.2012, 15:12     обращение к данным uiviewcontroller #18
Но насчет цитаты выше - ну что я могу сказать, не понимаете Вы что такое ARC, для чего он нужен, а главное, не видите причинно-следственной связи между компонентами, разделенными "=>" значками.
просто логически:

при включенном ARC использование dealloc и release не требуется, ЭТО ФАКТ

а значит ARC в том или ином виде является сборщиком мусора
zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
12.12.2012, 15:17     обращение к данным uiviewcontroller #19
Просто логически: если чтото является яблоком, оно от этого не становится апельсином. И вот это - факт.
Вы просили ссылки "в студию":
пруфлинк, подтверждающий что ARC не сборщик мусора, в студию!
Моя очередь:
Пруфлинк на документацию, подтверждающую что ARC - сборщик мусора, в студию!
Посмотрим что Вы найдете...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.12.2012, 15:27     обращение к данным uiviewcontroller
Еще ссылки по теме:

Objective-C Прозрачный UIViewController
Objective-C Метод touchesBegan в UIViewController
Swift PostgRest обращение к веб сервису
Objective-C Не вызывается dealloc в UIViewController при popViewControllerAnimated
Objective-C Состояние UIViewController

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

Или воспользуйтесь поиском по форуму:
Alex_pac
1282 / 688 / 8
Регистрация: 25.05.2011
Сообщений: 2,158
Записей в блоге: 51
12.12.2012, 15:27     обращение к данным uiviewcontroller #20
при включенном ARC использование dealloc и release не требуется
по этот факт является фактом пруфлинки не нужны ибо очевидно
Yandex
Объявления
12.12.2012, 15:27     обращение к данным uiviewcontroller
Ответ Создать тему
Опции темы

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