IOS: установить свойство в iOS7

В моем приложении у меня есть это свойство (и его @synthesize в.м)

@property (nonatomic, strong) IBOutlet UILabel *titleHeader;

в secondViewController,

Проблема в том, что в iOS 7 если из firstViewController Я делаю:

[secondViewController.titleHeader setText:@"title"];

это не работает, в iOS 6 это работает.

Зачем?

РЕДАКТИРОВАТЬ

Я делаю это:

SecondViewController *secondViewController = [[SecondViewController alloc]initWithNibName:@"SecondViewController" bundle:nil code:[object code]];
        [self.navigationController pushViewController:secondViewController animated:YES];
        [secondViewController.titleHeader setText:[object name]];
        [secondViewController.headerView setBackgroundColor:colorHeaderGallery];

1 ответ

Решение

Мнения secondViewController еще не были загружены, когда вы их установили. Вы можете проверить это, запросив значение secondViewController.titleHeader после перемещения контроллера вида в стек навигации.

Как исправить, вы можете объявить свойство в secondViewController

@property (nonatomic, strong) NSString *titleHeaderText;

затем установите это свойство вместо secondViewController.titleHeader setText
например

secondViewController.titleHeaderText = [object name];

После этого в вашем secondViewController"s viewDidLoad Метод, вы можете установить текст вашей метки.

[self.titleHeader setText:self.titleHeaderText ];

РЕДАКТИРОВАТЬ:
Поведение pushViewController похоже, изменилось в iOS 7. Я пробовал и повторил вашу проблему.

Если вы не хотите, чтобы вышеупомянутое изменение, обходной путь - доступ к представлению secondViewController, так что его взгляды будут загружены перед вызовом label setText,
например

SecondViewController *secondViewController = [[SecondViewController alloc]initWithNibName:@"SecondViewController" bundle:nil code:[object code]];
[self.navigationController pushViewController:secondViewController animated:YES];
[secondViewController view];
[secondViewController.titleHeader setText:[object name]];
[secondViewController.headerView setBackgroundColor:colorHeaderGallery];
Другие вопросы по тегам