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

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

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

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

04.12.2013, 21:12. Просмотров 796. Ответов 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 были на одном экране - то проблем нет, текст меняется, но как сделать чтобы текст менялся на соседнем контроллере??

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

Спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.12.2013, 21:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Смена свойств объектов по нажатию на кнопку (Программирование iOS):

Смена подписи и изображения по нажатию на кнопку - C#
Добрый день! Есть 3 объекта: коала, жираф, панда. Есть надпись, картинка и 2 кнопки (предыдущий и следующий). При нажатию на...

Создание объектов по нажатию на кнопку - Lazarus
Ремарка: пишет новичок, который взялся-таки за изучение ООП и, в частности, Object Pascal, пару месяцев назад. Прошу прощения за глупости,...

Смена одного массива элементов управления на другой по нажатию на кнопку - C#
Здравствуйте! Есть такая, как на картинке, форма: При нажатии на «5» должно появиться 19 текстбоксов, при нажатии на «10» должно...

На форме создать кнопку и по нажатию на эту кнопку открыть фотографию - MS Access
Салют всем форумчанам! Помогите мне! Как реализовать следующую задумку - на форме создать кнопку и по нажатию на эту кнопку окрывается...

Применение свойств объектов из следующей формы к свойствам объектов данной формы - Visual Basic
Подскажите, как, например, по клику на кнопку присвоить ей рисунок, который присвоен пикчербоксу из второй формы?

Смена свойств объкта - JavaScript
function changeStuff(num, obj1, obj2) { num = num * 10; obj1.item = "changed"; obj2 = {item: "changed"}; } var...

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

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

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

Спасибо
0
Монфрид
1199 / 1009 / 154
Регистрация: 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];//это если есть
1
glvrzzz
95 / 71 / 12
Регистрация: 12.12.2012
Сообщений: 214
04.12.2013, 21:49 #5
NOSC, прежде всего научитесь мыслить более абстрактно. Я так понимаю, изначально задача совсем не в том, чтобы просто поменять текст в лейбле. Вангую, что происходит нечто следующее: по нажатию на кнопку должно изменятся какое-то состояние программы или какие-то данные, и это состояние/данные должно отображаться в лейбле. Если так, то то этого и пляшите.

По поводу перехода на др контроллер: есть разные стандартные методы навигации (2 из них показал Монфрид) + можете свои изобрести. Чтобы выбрать, какой вам лучше подходит, тут без чтения документации не обойтись
1
Монфрид
1199 / 1009 / 154
Регистрация: 07.03.2012
Сообщений: 3,243
Завершенные тесты: 2
04.12.2013, 21:49 #6
книжку можно почитать авторов: Марк, Наттинг, Ламарш IOS Sdk 5..
1
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 из них показал Монфрид) + можете свои изобрести. Чтобы выбрать, какой вам лучше подходит, тут без чтения документации не обойтись
Да, чуть выше описал немного чего хочется добиться.
Спасибо за помощь, пытаюсь разобраться.
0
Монфрид
1199 / 1009 / 154
Регистрация: 07.03.2012
Сообщений: 3,243
Завершенные тесты: 2
04.12.2013, 22:00 #8
у вас же наверняка не только заголовок будет меняться при переходе, вы намучаетесь со скрыванием/показыванием контролов, уж лучше шесть вьюх
0
NOSC
43 / 43 / 3
Регистрация: 10.10.2013
Сообщений: 297
04.12.2013, 22:03  [ТС] #9
Цитата Сообщение от Монфрид Посмотреть сообщение
у вас же наверняка не только заголовок будет меняться при переходе, вы намучаетесь со скрыванием/показыванием контролов, уж лучше шесть вьюх
Хм, на каждой из шести вьюх еще 8 кнопок, после нажатия на кнопку пользователь должен видеть третий экран, в котором webview со статьей;

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

На андройде у меня программа всего с 3 классами, которые программно создавали layout, неужели тут мне реально придется делать 6 + 48 вьюх???
0
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 все по аналогии.
Где-то конечно могу ошибаться, так как задача стоит весьма размыто.
1
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 контроллера. Результатами поделюсь, чтобы новичкам жизнь облегчить =)


Всем спасибо, наверное пока тему можно считать закрытой
0
Миниатюры
Смена свойств объектов по нажатию на кнопку  
05.12.2013, 10:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.12.2013, 10:00
Привет! Вот еще темы с ответами:

Смена свойств DropDownList - C# ASP.NET
Нужен доступ к свойствам ДропДоунЛист через яваскрипт. Например к свойству Visible function GetTerritories(regionID) { ... var...

ADO Connection и динамическая смена свойств - Visual Basic
Есть VB приложение, которое работает с несколькими базами(файлами) Interbase. Как Вы думаете, при соединении с разными базами нужны...

Сделать по нажатию на 1-ую кнопку открытие формы2 на указанной записи, а на 2-ую кнопку - формы2 на новой - MS Access
Здравствуйте, возник вопрос..., не буду тянуть кота за хвост. В общем: на главной форме есть 2 кнопки, также имеется вторая форма ...

Изменение свойств группы объектов - VBA
Добрый день! Есть ComboBox со значением от 1 до 10, а также 10 строк из одного Lable и девяти Textbox каждая (изначально невидимые). ...


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

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

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