0

В принципе, я использую метод prepareForSegue для перехода к другому представлению в моей раскадровке, мой взгляд должен был быть встроен в контроллер навигации, чтобы отобразить панель навигации, поэтому я передаю переменные в таких способ:Set Method Values ​​With prepareForSegue

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

     UINavigationController *navController = (UINavigationController *)segue.destinationViewController; 
     AddTableViewController *controller = (AddTableViewController *)navController.topViewController; 
     controller.tagName = tagName; 
    } 
} 

Моя проблема, я должен быть в состоянии установить некоторые значения методов в самом контроллере вида при использовании метода prepareForSegue, как вы можете сделать при использовании pushViewController, как показано ниже:

DetailViewController *detailViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"DetailViewController"]; 
detailViewController.tagName = tagName; 
[detailViewController setCurrentHashtag:nil]; 
[navigationController pushViewController:self.detailViewController animated:YES]; 

Мне нужно установить «setCu rrentHashtag ", который объявлен в контроллере представления, к которому идет segue" researchAddSelected ". Как мне это сделать?

+2

Не могу понять. Арент, который вы пытаетесь сделать, это в 'controller.tagName = tagName;'? Почему не 'controller setCurrentHashtag: nil];' например? –

+0

Это не работает, но controller.taganame - это нечто совершенно другое. –

ответ

0

Ответ на это на самом деле очень очевиден, но мне требуется, чтобы задать вопрос, чтобы сам реализовать ответ.

Вы можете просто установить:

controller.currentHashtag = nil; 

Где currentHashtag недавно объявленный экземпляр в контроллере представления. Тогда в фактическом наборе контроллера представления:

[self setCurrentHashtag:currentHashtag]; 
+0

'controller.currentHashtag = nil' - это точно такая же, как' [controller setCurrentHashtag: nil] '. Что произошло, когда вы попробовали последний синтаксис? –

0

Просто добавьте currentHashtag к методу.

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

    UINavigationController *navController = (UINavigationController *)segue.destinationViewController; 
    AddTableViewController *controller = (AddTableViewController *)navController.topViewController; 
    controller.tagName = tagName; 
    [controller setCurrentHashTag:nil]; //add this line 
    } 
} 

Я не уверен, что вы здесь делаете. Если segue напрямую указывает на контроллер вида (и ни через другой контроллер навигации), вам не нужно сопоставление с topviewcontroller, но напрямую используйте целевой контроллер.