2012-04-30 3 views
1

Как я могу назвать следующий метод из этого IBAction? Я хочу вызвать метод prepareForSegue: вместо NSLog (@ "clicked");Как я могу назвать следующий метод из этого IBAction?

Вот IBAction:

- (IBAction) annotationViewClick:(id) sender { 
    NSLog(@"clicked"); 
} 

Вот метод:

// Do some customisation of our new view when a table item has been selected 
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    // Make sure we're referring to the correct segue 
    if ([[segue identifier] isEqualToString:@"ShowMoreInfo"]) { 

     // Get reference to the destination view controller 
     MoreDetailViewController *mdvc = [segue destinationViewController]; 


     [mdvc setSelectedItemName:[NSString stringWithFormat:@"%@", placeName.text]]; 
     [mdvc setSelectedItemAddress:[NSString stringWithFormat:@"%@", placeFormattedAddress.text]]; 

     [mdvc setSelectedItemWeb:[NSString stringWithFormat:@"%@", placeWebsite.text]]; 
     [mdvc setSelectedItemRating:[NSString stringWithFormat:@"%@", placeRating.text]]; 
    //  [mdvc setSelectedItemDistance:[NSString stringWithFormat:@"%@", placeDistance.text]]; 

    } 
} 

спасибо за помощь!

ответ

1

prepareForSegue: метод вызывает автоматически при выполнении SEGUE.

Для выполнения segue вы должны использовать performSegueWithIdentifier:, для ex. [self performSegueWithIdentifier:@"showGuide" sender:self];,

В этом случае вам необходимо назначить идентификатор segue в Xcode Interface Builder.

+0

здорово! большое спасибо – hanumanDev

0

идентификатор попробовать что-то вроде

UIStoryBoardSegue *segue = ... setup the one you want 
[self performSelector:@selector(prepareForSegue:) withObject:seque afterDelay:0]; 

Я никогда не работал с раскадровки - но то, как вы называете селектор :)

+0

спасибо. Я просто хочу запустить код, который находится в методе - (void) prepareForSegue:. Разве нет способа просто назвать этот метод без необходимости настройки UIStoryBoardSegue * segue? segue уже настроен в (void) prepareForSegue: метод – hanumanDev

+0

ваши методы «prepareForSegue:», очевидно, должны быть вызваны с помощью segue, поэтому я думаю, что вам нужно инициировать его ... (не выделять, а получить ссылку) –