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

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

Войти
Регистрация
Восстановить пароль
 
NOSC
43 / 43 / 3
Регистрация: 10.10.2013
Сообщений: 297
#1

Смена свойств объектов по нажатию на кнопку - Программирование iOS

04.12.2013, 21:12. Просмотров 768. Ответов 10
Метки нет (Все метки)

Доброго времени суток.
Подскажите, ни как не могу в гугле найти решение.
У меня несколько ViewController, задача по нажатию на кнопку на одном контроллере переходить на другой и менять текст в Label.
Сейчас код вот такой:
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
#import "SBFViewController.h"
 
@interface SBFViewController ()
@property (weak, nonatomic) IBOutlet UIButton *but;
@property (weak, nonatomic) IBOutlet UILabel *label;
- (IBAction)but:(id)sender;
 
@end
 
@implementation SBFViewController
 
- (void)viewDidLoad
{
    [super viewDidLoad];
    
    // Do any additional setup after loading the view, typically from a nib.
}
 
- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
 
- (IBAction)but:(id)sender {
    _label.text=@"myText";
}
@end
+ на кнопке переход на следующий контроллер.
Если бы кнопка и Label были на одном экране - то проблем нет, текст меняется, но как сделать чтобы текст менялся на соседнем контроллере??

Прошу подсказок или ссылки на нормальное объяснение как это должно работать.

Спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.12.2013, 21:12     Смена свойств объектов по нажатию на кнопку
Посмотрите здесь:

Затруднение с пониманием. Как в ObjC добраться до свойств какого-нибудь контрола? - Objective-C
Приветствую всех ! не сочтите за труд и просветите начинающего.. Изучаю C# и Objective C параллельно... если с первым все более менее...

Открытие БД по нажатию кнопки - Программирование iOS
У кого нибудь есть статья про БД Как это реализовывать На Table View Controller ? или у кого нибудь есть даже исходник Спасибо.

Выплывающее меню по нажатию кнопки (popover?) - Swift
Добрый день! Изучаю свифт, сейчас столкнулся с проблемой, по кнопке выбора фото хочу сделать всплывающее окно с выбором фото (сделать...

Смена self.navigationController - Программирование iOS
Всем привет! Подскажите, пожалуйста, как правильно будет поступить в данной ситуации: В приложении, в определенном контроллере есть...

Смена кодировки NSString - Objective-C
ДВС, всем! На ГитХабе нашел парсер HTML (Objective-C-HMTL-Parser ), встроил его в свой проект, далее - получаю страницу, распарсиваю ее,...

AutoLayout и смена ориентации - Программирование iOS
Добрый день! Использую AutoLayout. При повороте экрана все растягивается как надо. Но на элементы нельзя нажать, тоесть не происходят...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Монфрид
1194 / 1004 / 153
Регистрация: 07.03.2012
Сообщений: 3,243
Завершенные тесты: 2
04.12.2013, 21:20     Смена свойств объектов по нажатию на кнопку #2
что ж вам всем лень книжку то хоть одну прочитать, все спешат за неделю создать приложение и выложить его в стор..
Там, где код перехода на другую вьюху, там и устанавливайте текст и всё что угодно
NOSC
43 / 43 / 3
Регистрация: 10.10.2013
Сообщений: 297
04.12.2013, 21:34  [ТС]     Смена свойств объектов по нажатию на кнопку #3
Цитата Сообщение от Монфрид Посмотреть сообщение
что ж вам всем лень книжку то хоть одну прочитать, все спешат за неделю создать приложение и выложить его в стор..
Там, где код перехода на другую вьюху, там и устанавливайте текст и всё что угодно
Да мне не лень. Подсказал бы кто книжку актуальную.
Да тороплюсь, на андройд готова программа, вот решили на IOS сразу сделать. С Андройдом разобрался легко и быстро, к стыду или нет, но без книжек.

Если кто сталкивался - пример или кусок кода или просто внятные объяснения. Я понимаю что я тракторист в данном случае, но иначе бы и просил помощи.

Вот расскажите где код перехода на другую вьюху? Я просто не знаю этого

Спасибо
Монфрид
1194 / 1004 / 153
Регистрация: 07.03.2012
Сообщений: 3,243
Завершенные тесты: 2
04.12.2013, 21:48     Смена свойств объектов по нажатию на кнопку #4
Цитата Сообщение от NOSC Посмотреть сообщение
Вот расскажите где код перехода на другую вьюху? Я просто не знаю этого
я думал у вас уже они переходят и код есть.
В зависимости от того, используете ли вы navigationController или нет, можно так:
Objective-C
1
2
3
4
MyViewController *vc=[MyViewController alloc]init;
vc.mySuperLabel.text=@"trattat";
[self presentViewController:vc animated:YES completion:nil];//это если нет navController'a
[self.navigationController pushViewController: vc];//это если есть
glvrzzz
95 / 71 / 12
Регистрация: 12.12.2012
Сообщений: 214
04.12.2013, 21:49     Смена свойств объектов по нажатию на кнопку #5
NOSC, прежде всего научитесь мыслить более абстрактно. Я так понимаю, изначально задача совсем не в том, чтобы просто поменять текст в лейбле. Вангую, что происходит нечто следующее: по нажатию на кнопку должно изменятся какое-то состояние программы или какие-то данные, и это состояние/данные должно отображаться в лейбле. Если так, то то этого и пляшите.

По поводу перехода на др контроллер: есть разные стандартные методы навигации (2 из них показал Монфрид) + можете свои изобрести. Чтобы выбрать, какой вам лучше подходит, тут без чтения документации не обойтись
Монфрид
1194 / 1004 / 153
Регистрация: 07.03.2012
Сообщений: 3,243
Завершенные тесты: 2
04.12.2013, 21:49     Смена свойств объектов по нажатию на кнопку #6
книжку можно почитать авторов: Марк, Наттинг, Ламарш IOS Sdk 5..
NOSC
43 / 43 / 3
Регистрация: 10.10.2013
Сообщений: 297
04.12.2013, 21:59  [ТС]     Смена свойств объектов по нажатию на кнопку #7
Цитата Сообщение от Монфрид Посмотреть сообщение
я думал у вас уже они переходят и код есть.
В зависимости от того, используете ли вы navigationController или нет, можно так:
Objective-C
1
2
3
4
MyViewController *vc=[MyViewController alloc]init;
vc.mySuperLabel.text=@"trattat";
[self presentViewController:vc animated:YES completion:nil];//это если нет navController'a
[self.navigationController pushViewController: vc];//это если есть
Я решил изначально "упростить" себе жизнь и у меня просто ViewController с шестью кнопками, чтобы не создавать 6 ViewController'ов я сделал один, от кнопочек перетянул "стрелочки" modal
Теперь хочется по нажатию кнопок изменять заголовок следующего экрана и содержимое ScrollView

Простите, терминологией, как видите, не владею.

Добавлено через 40 секунд
Цитата Сообщение от Монфрид Посмотреть сообщение
книжку можно почитать авторов: Марк, Наттинг, Ламарш IOS Sdk 5..
Спасибо, сразу заказал на Озоне

Добавлено через 2 минуты
Цитата Сообщение от glvrzzz Посмотреть сообщение
NOSC, прежде всего научитесь мыслить более абстрактно. Я так понимаю, изначально задача совсем не в том, чтобы просто поменять текст в лейбле. Вангую, что происходит нечто следующее: по нажатию на кнопку должно изменятся какое-то состояние программы или какие-то данные, и это состояние/данные должно отображаться в лейбле. Если так, то то этого и пляшите.

По поводу перехода на др контроллер: есть разные стандартные методы навигации (2 из них показал Монфрид) + можете свои изобрести. Чтобы выбрать, какой вам лучше подходит, тут без чтения документации не обойтись
Да, чуть выше описал немного чего хочется добиться.
Спасибо за помощь, пытаюсь разобраться.
Монфрид
1194 / 1004 / 153
Регистрация: 07.03.2012
Сообщений: 3,243
Завершенные тесты: 2
04.12.2013, 22:00     Смена свойств объектов по нажатию на кнопку #8
у вас же наверняка не только заголовок будет меняться при переходе, вы намучаетесь со скрыванием/показыванием контролов, уж лучше шесть вьюх
NOSC
43 / 43 / 3
Регистрация: 10.10.2013
Сообщений: 297
04.12.2013, 22:03  [ТС]     Смена свойств объектов по нажатию на кнопку #9
Цитата Сообщение от Монфрид Посмотреть сообщение
у вас же наверняка не только заголовок будет меняться при переходе, вы намучаетесь со скрыванием/показыванием контролов, уж лучше шесть вьюх
Хм, на каждой из шести вьюх еще 8 кнопок, после нажатия на кнопку пользователь должен видеть третий экран, в котором webview со статьей;

то есть мне надо 48 вьюх еще???

На андройде у меня программа всего с 3 классами, которые программно создавали layout, неужели тут мне реально придется делать 6 + 48 вьюх???
glvrzzz
95 / 71 / 12
Регистрация: 12.12.2012
Сообщений: 214
04.12.2013, 22:23     Смена свойств объектов по нажатию на кнопку #10
Цитата Сообщение от NOSC Посмотреть сообщение
Я решил изначально "упростить" себе жизнь и у меня просто ViewController с шестью кнопками, чтобы не создавать 6 ViewController'ов я сделал один, от кнопочек перетянул "стрелочки" modal
Теперь хочется по нажатию кнопок изменять заголовок следующего экрана и содержимое ScrollView
Я так понимаю, вы пытаетесь решить вот эту проблему?

Опять. Один из принципов ООП - абстрагирование. Вы мыслите слишком конкретно. Ваша задача не "изменять заголовок", а отображать в заголовке, ну например, название текущей категории.
Прежде всего, разберитесь c MVC, так как это основной паттерн в iOS.

Как разберетесь, вам станет ясно, что для начала следует спроектировать модель данных:
у вас это, во-первых, Раздел, у него есть название и массив статей.
во-вторых, это Статья, у нее есть заголовок и путь к хтмл в ресурсах

Контроллера вам нужно 3:
HomeViewController
ChapterViewController
ArticleViewController

Сначала создаем UINavigationController c HomeViewController в руте.
В HomeViewController у вас есть 6 разделов, на его вьюшке лежат 6 кнопок, каждая соответствует разделу.
По нажатию на кнопку создаем ChapterViewController и передаем в него соответствующий раздел (либо через property, либо в -initWithChapter,
пушим его в NavigationController,
ChapterViewController во -viewDidLoad, имея объект Раздел, выставляем нужные нам данные во вьюшки: показываем имя в заголовок, список статей тд.
С ArticleViewController все по аналогии.
Где-то конечно могу ошибаться, так как задача стоит весьма размыто.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.12.2013, 10:00     Смена свойств объектов по нажатию на кнопку
Еще ссылки по теме:

Смена цвета status bar - Objective-C
ребят, как поменять цвет текста статус бара на кастомный? текст на белый и черный умею менять, а вот на любой другой — никак.

Смена ориентции не сопровождается нотификацией - Программирование iOS
Доброго времени суток. Сталкивался ли кто-нибудь с ситуацией, что при смене ориентации девайс не всегда оповещается об этом? Т.е. стоит...

Смена фокуса между TextView - Программирование iOS
Доброго времени суток. У меня есть несколько таблиц на одном view, они имитируют одну таблицу со столбцами. В ячейках таблиц по размеру...

UILabel смена текста каждые 3 секунды - Objective-C
Здравствуйте. У меня есть таблица, ячейки которой содержат по одному UILabel. Я пытаюсь научить UILabel менять текст по требованию. Для...


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

Или воспользуйтесь поиском по форуму:
NOSC
43 / 43 / 3
Регистрация: 10.10.2013
Сообщений: 297
05.12.2013, 10:00  [ТС]     Смена свойств объектов по нажатию на кнопку #11
Цитата Сообщение от glvrzzz Посмотреть сообщение
Контроллера вам нужно 3:
HomeViewController
ChapterViewController
ArticleViewController
Сначала создаем UINavigationController c HomeViewController в руте.
В HomeViewController у вас есть 6 разделов, на его вьюшке лежат 6 кнопок, каждая соответствует разделу.
По нажатию на кнопку создаем ChapterViewController и передаем в него соответствующий раздел (либо через property, либо в -initWithChapter,
Спасибо, логически я именно так себе это и нарисовал в голове моя беда в отсутствии знаний.
Пока пошел вот таким путем (см. рисунок). К первому же обновлению планирую подготовить базу данных и оставить всего 3 контроллера. Результатами поделюсь, чтобы новичкам жизнь облегчить =)


Всем спасибо, наверное пока тему можно считать закрытой
Миниатюры
Смена свойств объектов по нажатию на кнопку  
Yandex
Объявления
05.12.2013, 10:00     Смена свойств объектов по нажатию на кнопку
Ответ Создать тему
Опции темы

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