Я хочу сделать следующее:
Во-первых, TopPlacesViewController
имеет переход к классу SinglePlacePhotosViewController
(контроллеру TableView
).
Я создаю делегата в классе TopPlacesViewController
, затем использую метод prepareforSegue
, чтобы установить SinglePlacePhotosViewController
в качестве делегата и реализовать метод протокола.
Затем, когда я щелкаю фотографию в TopPlacesViewController
(контроллер TableView), он вызывает метод TopPlacesViewController
, который должен показать некоторые фотографии из этого места.
Но я продолжал получать эту ошибку:
[SinglePlacePhotosViewController setDelegate:]: нераспознанный селектор отправлен экземпляру 0xc94cc20
Мой TopPlacesViewController.h
файл:
@class TopPlacesViewController;
@protocol TopPlacesViewControllerDelegate
- (void)topPlacesViewControllerDelegate:(TopPlacesViewController *)sender
showPhotos:(NSArray *)photo;
@end
@interface TopPlacesViewController : UITableViewController
@property (nonatomic,weak) id <TopPlacesViewControllerDelegate> delegate;
@end
TopPlacesViewController.m
:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSDictionary *place = [self.places objectAtIndex:indexPath.row];
self.singlePlacePhotos = [FlickrFetcher photosInPlace:place maxResults:50];
[self.delegate topPlacesViewControllerDelegate:self showPhotos:self.singlePlacePhotos];
[self performSegueWithIdentifier:@"Flickr Photos" sender:self];
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if([segue.identifier isEqualToString:@"Flickr Photos"]) {
[segue.destinationViewController setDelegate:self];
}
}
Затем в этом я реализую делегата:
@interface SinglePlacePhotosViewController () <"TopPlacesViewControllerDelegate">
- (void)topPlacesViewControllerDelegate:(TopPlacesViewController *)sender showPhoto:(NSArray *)photo
{
self.photos = photo;
}
SinglePlacePhotosViewController
? - person Vervious   schedule 30.06.2012SinglePlacePhotosViewController
? Похоже, что для вашего делегата отсутствует @property. - person Chris Trahey   schedule 30.06.2012