2014-09-01 2 views
0

Я пытаюсь представить UITableViewController при подключении коллекцииViewCell. Я сделал это, используя didSelectItemAtIndexPath. Когда я нажимаю collectionView ничего не происходит, и после того, как я нажал, пользовательский интерфейс заблокирован, и я не могу ничего сделать. Сообщения об ошибках/журналах не отображаются. Почему он не представляет viewController и почему нет сообщений об ошибках?, представляющий блоки UITableViewController UI

UITableViewController InterfaceBuilder:

enter image description here

-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath 
{ 
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 

    HomeProfileViewController *hpvc = [storyboard instantiateViewControllerWithIdentifier:@"NavProfile"]; 

    hpvc.idString= [[homesDic objectAtIndex:indexPath.item] objectForKey:@"idString"]; 
    hpvc.imageArray = [[NSMutableArray alloc]init]; 
    hpvc.imageArray = [imageDic objectAtIndex:indexPath.item]; 

    [self presentViewController:hpvc animated:YES completion:nil]; 
} 
+0

Почему два раза 'hpvc.imageArray ='? –

ответ

0

Мое предположение, что раскадровка нашли время для загрузки. Поддерживайте объект уровня на уровне экземпляра и выполняйте ленивый экземпляр на didSelectItemAtIndexPath.

Ленивый код экземпляра:

- (UIStoryboard *)storyboard: { 
    if (!_storyboard) { 
     _storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 
    } 
    return _storyboard; 
} 

и в вашем didSelectItemAtIndexPath,

UIStoryboard *storyboard = [self storyboard]; 

Опять же, это моя догадка. Он выводится только из данного кода.

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