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

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

Войти
Регистрация
Восстановить пароль
 
Crazyhare86
0 / 0 / 0
Регистрация: 21.01.2013
Сообщений: 3
#1

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

21.01.2013, 09:34. Просмотров 675. Ответов 4
Метки нет (Все метки)

Здравствуйте! Возникла проблема
Есть TableViewController , при выборе ячейки переходим по segue на другой ViewController, на этом ViewController есть label, так вот

if([[segue identifier] isEqualToString:@"perSegue"])
{
ZNPerDetailViewController *perDetailViewController = [segue destinationViewController];
perDetailViewController.title = @"Test";
perDetailViewController.perNameDetailLabel.text = @"Person1";
}

При этом получаем, что title изменяется нормально, а вот label нифига не хочет меняться.... не могу понять почему....
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.01.2013, 09:34     Segue
Посмотрите здесь:

Переход по segue
Передача данных segue Objective-C
Два segue, Два viewController, Одно отображение
Objective-C Не освобождается память после unwind segue
CollectionView & Segue Swift
Ручной переход segue Swift

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Max Patsy
курлык-курлык
84 / 93 / 3
Регистрация: 26.11.2009
Сообщений: 396
Записей в блоге: 1
21.01.2013, 09:58     Segue #2
если у тебя perNameDetailLabel не создается динамически, попробуй сделать его IBOutlet свойством в *.h
через Interface Builder свяжи, получится что-то такое:
Objective-C
1
@property(nonatomic, retain) IBOutlet NSLabel*perNameDetailLabel;

потом в *.m файле уже обращайся напрямую к perNameDetailLabel,

Objective-C
1
perNameDetailLabel.text = @"Person1";
Crazyhare86
0 / 0 / 0
Регистрация: 21.01.2013
Сообщений: 3
21.01.2013, 10:16  [ТС]     Segue #3
Так у меня так и сделано...

Может нужно как-то через идентификатор label получать?....
alexpac26
14 / 22 / 0
Регистрация: 20.01.2013
Сообщений: 125
21.01.2013, 13:37     Segue #4
видимо не связан раз не ставит
mobidevelop
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
21.01.2013, 16:55     Segue #5
По всей видимости вьюха еще не загружена. Соответственно, perNameDetailLabel == nil. Контроллер уже создан, а вьюха будет создана в момент первого к ней обращения. Варианта 2:
1. Быстрый, но идиотский. После получения ссылки на контроллер обратиться к его вьюхе. Типа NSLog(@"%@", perDetailViewController.view);
2. Корректный.
а) Создать в контроллере проперть типа того объекта, который должен в этом контроллере отбражаться. Если одна строка, значит NSString. Обычно это все-таки какая-то сущность
б) Создать в контролле метод, заполняющий вью данными. В вышепридеденном примере это будет что-то типа
Objective-C
1
2
3
4
-(void)refreshUI{
self.title = @"Test";
self.perNameDetailLabel.text = @"Person1";
}
в) вызвать этот метод во viewDidLoad. К этому моменту все UI объекты будут созданы и все должно быть хорошо.

PS. Извиняюсь за кривой форматтинг, но не разобрался как в этом редакторе табуляцию вставить. Если кто подскажет, буду рад
Yandex
Объявления
21.01.2013, 16:55     Segue
Ответ Создать тему
Опции темы

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