我是一個初級水平的開發商和我被困在這我無法弄清楚這個很簡單的事情。
我有一類是AFHTTPRequestOperationManager
擴展。意味着它是在這個類我有我所有的代碼從Imgur API獲取圖像,並使用AFNetworking
我已經解析了高達哪裏開始獲取圖像的唯一鏈路級別的數據@interface apiClient : AFHTTPRequestOperationManager
。
現在rootViewController
這是一個UICollectionViewController
擴展。在它的viewDidLoad
我將來電轉到我的APIClient,它開始從方法的方法移動,最後給我一個NSMutableArray
其中包含了圖像鏈接,我會在我的CollectionViewCell
的UIImageView
使用。
問題是我用這最後的鏈接發回給我的rootViewController
即GalleryCollectionViewController
傳遞解析數據,以UICollectionView
GalleryCollectionViewController *gcvc = [[GalleryCollectionViewController alloc] init];
[gcvc recieveGalleryImagesLinks:galleryImgLinkArr];
的問題是,在gcvc
調用numberOfItemsInSection
纔可以從API任何迴應。這意味着計數結果爲零,因此它不顯示數據。那麼我怎樣才能讓它從apiClient
類首先獲得API調用,然後再製作viewController
。我希望我已經清楚地說明了我的問題,如果需要分享更多的代碼,我會做。
UPDATE
授權之後此方法得到畫廊圖像:
- (void)galleryAlbum:(NSString *)ID {
NSLog(@"ID is %@", ID);
[self GET:[NSString stringWithFormat:@"%@3/gallery/album/%@", self.baseURL,ID] parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
self.galleryData = (NSDictionary *)responseObject;
galleryDataArr = [[NSMutableArray alloc] init];
galleryDataArr = [self.galleryData valueForKey:@"data"];
galleryImagesArr = [[NSMutableArray alloc] init];
galleryImagesArr = [galleryDataArr valueForKey:@"images"];
galleryImgLinkArr = [[NSMutableArray alloc] init];
galleryImgLinkArr = [galleryImagesArr valueForKey:@"link"];
GalleryCollectionViewController *gcvc = [[GalleryCollectionViewController alloc] init];
[gcvc recieveGalleryImagesLinks:galleryImgLinkArr];
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Failed #2");
}];
}
這裏gcvc被接收與圖像鏈接的數組,然後重新加載集合視圖爲:
-(void)recieveGalleryImagesLinks:(NSMutableArray *)array
{
self.imageLinks = [[NSMutableArray alloc] initWithArray:array];
NSLog(@"Array: %@",self.imageLinks);
[self.collectionView reloadData];
}
但它給「UICollectionView:必須初始化一個非零布局參數」,雖然該數組不是空。
更新與相關的代碼,獲取數據的問題。檢索數據時,您需要重新加載集合(在主線程上)。 – rmaddy
@rmaddy立即檢查 –
您正在創建新的視圖控制器,而不是訪問現有的視圖控制器。 – rmaddy