2014-09-22 5 views
3

я программно инициировал SEGUE со следующим методом:Как вы можете использовать отправителя в performSegueWithIdentifier?

[self performSegueWithIdentifier:@"loginToCategories" sender:object]; 

мне было интересно, если новый объект представления контроллера может получить доступ к «объект» Я вставлен в отправителе.

ответ

3

Если вы хотите, чтобы контроллер представления назначения, чтобы получить отправитель Segue, вам нужно будет отправить сообщение destinationViewController от метода prepareForSegue.

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    if ([segue.identifier isEqualToString:@"MySegue"]) { 
     MyViewController *destinationViewController = (MyViewController *)segue.destinationViewController; 
     destinationViewController.sender = sender; 
    } 
} 

This question очень похоже.

+0

Confused. Почему performSegueWithIdentifier() принимает отправителя, если мы не можем получить к нему доступ? – Eliot

1

да, вы можете получить доступ. добавить это в ваших loginToCategories

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    if ([[segue identifier] isEqualToString:@"yourControllerName"]) { 

    } 
} 
+0

Я добавляю этот код к объекту контроллера вида, который вызывается? – rmp2150

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