Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование iOS/iPhone
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.95/22: Рейтинг темы: голосов - 22, средняя оценка - 4.95
Igor20
39 / 0 / 0
Регистрация: 10.12.2012
Сообщений: 5
1

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

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

как взять текст из label.text из одного uiviewcontroller в другой? как обращаться к обьектам других вьюшек?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2012, 20:22
Ответы с готовыми решениями:

UISplitViewController vs UIViewController
Чистый проект. В Storyboard только UISplitViewController и UIViewController....

UIViewController поверх
Можно ли что-то (UIViewController or UIView или ещё чего нибудь подобного)...

XCode: Связь двух UIViewController
Всем привет! Начинаю осваивать xCode и одно решение завело меня в тупик....

Navigation controller (UITableviewController вместо UIViewController)
Доброго времени суток. Создал первое TabbedApp. Добавляю в проект элемент...

Быстрое обращение к данным многомерных словарей
предлагаю на рассмотрение следующий метод работы с данными многомерных словарей...

31
Vorona
Peace 2 all shining faces
672 / 534 / 84
Регистрация: 05.03.2010
Сообщений: 1,283
10.12.2012, 23:12 2
как-то так:
Objective-C
1
anotherViewController.someLabel.text = self.label.text;
ну а если поподробней, то в одном вьюконтроллере нужно создать другой либо получить его извне. И чтобы передать значения из вьюконтроллера A в B, то у вьюконтроллера B должен быть "публичный" метод либо свойство, в которое можно передать значение и там уже сделать с ним, что нужно
2
Igor20
39 / 0 / 0
Регистрация: 10.12.2012
Сообщений: 5
10.12.2012, 23:18  [ТС] 3
Спасибо, за квалифицированный ответ.)))
0
zulkis
684 / 611 / 43
Регистрация: 13.01.2011
Сообщений: 1,724
11.12.2012, 07:26 4
anotherViewController.someLabel.text = self.label.text;
Фу какая гадость
MVC - вот, что Вас спасет.
Не нужно из одного лейбла ViewController'a передавать текст и сетить его в другой. Это очень, очень плохо.
Label должен быть скрыт, он не должен быть доступен во внешнем интерфейсе.
Для того, чтобы передавать данные нужно создать объект - модель, в которой будет храниться ваша информация, а дальше его уже и передавать. А контроллер будет связывать модель и отображение.
MVC
1
Igor20
39 / 0 / 0
Регистрация: 10.12.2012
Сообщений: 5
11.12.2012, 14:05  [ТС] 5
можно что-нибудь на примере показать?
0
zulkis
684 / 611 / 43
Регистрация: 13.01.2011
Сообщений: 1,724
11.12.2012, 16:55 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
2
Alex_pac
1292 / 698 / 107
Регистрация: 25.05.2011
Сообщений: 2,158
Записей в блоге: 51
11.12.2012, 21:51 7
как взять текст из label.text из одного uiviewcontroller в другой? как обращаться к обьектам других вьюшек?
обычно используют общий синглтон класс либо NSUserDefaults для передачи данных между контроллерами

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

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

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

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

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

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


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

то я бы не стал тратить время на такие ресурсы, во-первых они устаревшие
с точки зрения русской документации то там все доступным языком написано. Устаревание там только в том что не применяется сборщик мусора.
1
zulkis
684 / 611 / 43
Регистрация: 13.01.2011
Сообщений: 1,724
12.12.2012, 11:42 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
3
Alex_pac
1292 / 698 / 107
Регистрация: 25.05.2011
Сообщений: 2,158
Записей в блоге: 51
12.12.2012, 12:14 11
Вот это вообще к чему тут, непонятно. Какой сборщик мусора в iOS, Вы о чем вообще?
обращение к данным uiviewcontroller


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

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

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

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

Ужас то какой
при использовании UIStoryBoard технологии организации приложений не вижу сложностей
1
zulkis
684 / 611 / 43
Регистрация: 13.01.2011
Сообщений: 1,724
12.12.2012, 13:33 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 пост. Злой пост. Мвахаха
1
Alex_pac
1292 / 698 / 107
Регистрация: 25.05.2011
Сообщений: 2,158
Записей в блоге: 51
12.12.2012, 14:38 13
Читайте как осуществляется Memory Management и что делает конкретно ARC
пруфлинк, подтверждающий что ARC не сборщик мусора, в студию!

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

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

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

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

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

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

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

Цитата Сообщение от Alex_pac Посмотреть сообщение
пруфлинк, подтверждающий что ARC не сборщик мусора, в студию!
Да хоть 2:
http://clang.llvm.org/docs/AutomaticReferenceCounting.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).
1
Alex_pac
1292 / 698 / 107
Регистрация: 25.05.2011
Сообщений: 2,158
Записей в блоге: 51
12.12.2012, 14:58 15
MVC это паттерн проектирования
паттерн который подразумевает разделение представления от логики чем и является сториБоард и все остальное.

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

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

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

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

а значит ARC в том или ином виде является сборщиком мусора
0
zulkis
684 / 611 / 43
Регистрация: 13.01.2011
Сообщений: 1,724
12.12.2012, 15:17 19
Просто логически: если чтото является яблоком, оно от этого не становится апельсином. И вот это - факт.
Вы просили ссылки "в студию":
пруфлинк, подтверждающий что ARC не сборщик мусора, в студию!
Моя очередь:
Пруфлинк на документацию, подтверждающую что ARC - сборщик мусора, в студию!
Посмотрим что Вы найдете...
0
Alex_pac
1292 / 698 / 107
Регистрация: 25.05.2011
Сообщений: 2,158
Записей в блоге: 51
12.12.2012, 15:27 20
при включенном ARC использование dealloc и release не требуется
по этот факт является фактом пруфлинки не нужны ибо очевидно
0
12.12.2012, 15:27
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.12.2012, 15:27

Прозрачный UIViewController
Всем привет хочу сделать поверх одного вьюконтролера другой с прозрачностью,...

Состояние UIViewController
Доброго времени суток, стыдно за такой вопрос, но поиск не дал рабочего...

Метод touchesBegan в UIViewController
Добрый день! Подскажите, а метод - (void)touchesBegan:(NSSet *)touches...


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

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

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