2015-11-12 4 views
0

Я использую Objective-C. Я установил SEGUE из табличной ячейки на новый контроллер представления, и я хочу, чтобы установить свойства для нового контроллера просмотра с помощью этого метода:Невозможно установить свойства для следующего вида, используя prepareForSegue: отправитель:

- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
    if ([segue.identifier isEqualToString: @"detail"]){ 
     if([segue.destinationViewController isKindOfClass:[detailViewController class]]){ 
      detailViewController *detail = (detailViewController *)segue.destinationViewController; 
      detail.label.text = @"QQQQQ"; 
    } 
} 

Я установить идентификатор SEGUE на @ «подробно» уже, а также связал код метки с контроллером представления в раскадровке. Но когда я запускаю это в своем симуляторе, ярлык никогда не изменится.

+0

являются вы синтезируете свой ярлык в деталяхViewController –

ответ

0

в то время, когда prepareForSegue называется точками выхода destinationviewcontroller, еще не установлены.

то, что вам нужно сделать, это создать свойство в вашем detailViewController классе как

@property (copy, nonatomic) NSString *detailText; 

затем в prepareForSegue:

detailViewController *detail = (detailViewController *)segue.destinationViewController; 
detail.detailText = @"QQQQQ"; 

и в вашем detailViewController s viewDidLoad:

self.label.text = self.detailText; 
+0

Большое вам спасибо. –

Смежные вопросы