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

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

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

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

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

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

UIViewController поверх - Программирование iOS
Можно ли что-то (UIViewController or UIView или ещё чего нибудь подобного) вывести, показать поверх UISplitViewController

UISplitViewController vs UIViewController - Программирование iOS
Чистый проект. В Storyboard только UISplitViewController и UIViewController. Как мне выводить UIViewController поверх всего...

XCode: Связь двух UIViewController - Программирование iOS
Всем привет! Начинаю осваивать xCode и одно решение завело меня в тупик. Написал прогресс бар, с анимацией загрузки. Теперь немогу понять,...

Navigation controller (UITableviewController вместо UIViewController) - Программирование iOS
Доброго времени суток. Создал первое TabbedApp. Добавляю в проект элемент navigation controller. Он состоит из двух элементов: view...

Быстрое обращение к данным многомерных словарей - Objective-C
предлагаю на рассмотрение следующий метод работы с данными многомерных словарей рассматриваются словари, чья многомерная структура...

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

31
Vorona
Peace 2 all shining faces
670 / 532 / 45
Регистрация: 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 / 1
Регистрация: 10.12.2012
Сообщений: 5
10.12.2012, 23:18  [ТС] #3
Спасибо, за квалифицированный ответ.)))
0
zulkis
683 / 610 / 38
Регистрация: 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 / 1
Регистрация: 10.12.2012
Сообщений: 5
11.12.2012, 14:05  [ТС] #5
можно что-нибудь на примере показать?
0
zulkis
683 / 610 / 38
Регистрация: 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
1286 / 692 / 8
Регистрация: 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
670 / 532 / 45
Регистрация: 05.03.2010
Сообщений: 1,283
12.12.2012, 01:59 #8
Цитата Сообщение от zulkis Посмотреть сообщение
Фу какая гадость
ахах ну вы же так совсем запутаете человека здоровыми кусками кода, пусть просто освоится с сдк, а потом уже будет разбираться с паттернами и всем прочим, понятное дело никто так не делает но и лишним перегружать не стоит, имхо

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

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

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

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

то я бы не стал тратить время на такие ресурсы, во-первых они устаревшие
с точки зрения русской документации то там все доступным языком написано. Устаревание там только в том что не применяется сборщик мусора.
1
zulkis
683 / 610 / 38
Регистрация: 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
1286 / 692 / 8
Регистрация: 25.05.2011
Сообщений: 2,158
Записей в блоге: 51
12.12.2012, 12:14 #11
Вот это вообще к чему тут, непонятно. Какой сборщик мусора в iOS, Вы о чем вообще?
обращение к данным uiviewcontroller

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

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

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

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

Ужас то какой
при использовании UIStoryBoard технологии организации приложений не вижу сложностей
1
zulkis
683 / 610 / 38
Регистрация: 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
1286 / 692 / 8
Регистрация: 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
683 / 610 / 38
Регистрация: 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
1286 / 692 / 8
Регистрация: 25.05.2011
Сообщений: 2,158
Записей в блоге: 51
12.12.2012, 14:58 #15
MVC это паттерн проектирования
паттерн который подразумевает разделение представления от логики чем и является сториБоард и все остальное.

Да хоть 2:
ты не пишешь dealloc или release при использовании ARC => не освобождаешь память вручную => ARC это и есть сборщик мусора ибо больше не нужно вручную уничтожать экземпляры объектов
0
12.12.2012, 14:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.12.2012, 14:58
Привет! Вот еще темы с ответами:

Состояние UIViewController - Objective-C
Доброго времени суток, стыдно за такой вопрос, но поиск не дал рабочего результата Есть приложение с несколькими ViewController, при этом...

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

Обращение к данным из базы - C#
Есть база данных на MS SQL из которой нужно получить данные в переменную из текущей записи из определенного поля! Подключение: String...

Обращение к данным класса. - C++
Доброе время суток. Начал самостоятельно изучать классы. Хотел выполнить задание, но возникла первая трудность. #include...


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

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

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