NSString в AQGridViewCell - PullRequest
       15

NSString в AQGridViewCell

0 голосов
/ 05 ноября 2011

У меня есть AQGridView, настроенный для отображения файлов в каталоге документов вместе с 4 другими документами, которые предварительно определены и загружены в таблицу при запуске.Мне нужно знать, как настроить ячейку для хранения URL-адреса документа (да, даже для предопределенных! В конце концов, все они просто NSStrings), поэтому его можно вызвать позже с помощью

- (void)gridView:(AQGridView *)gridView didSelectItemAtIndex:(NSUInteger)index { 
    NSString *fileURL = [self._icons objectAtIndex:index]; 
    // do stuff
}

и загружен в новое представление с помощью пользовательского метода -(id)init.Прямо сейчас, NSLog ячейки объекта каталога документов возвращает (NULL) и SIGABRT в журнале.


ОК, щедрость увеличена.Я предполагаю, что это означает, что я могу требовать немного качества.Фрагменты кода будут великолепны!

Код предоставляется по запросу.

РЕДАКТИРОВАТЬ РАБОЧИЙ КОД:

//.h    
NSMutableArray *_documentIconsURLs;

//.m
//viewDidLoad
 // array for internal and external document URLs
    self._documentIconsURLs = [NSMutableArray array];
        _documentIconsURLs = [[NSMutableArray alloc] initWithObjects:@"Musette.pdf",
                              @"Minore.pdf",
                              @"Cantata.pdf",
                              @"Finalé.pdf",
                              @"divine-comedy-inferno.pdf", nil];
//didSelectObject
- (void) gridView:(AQGridView *)gridView didSelectItemAtIndex:(NSUInteger)index {

    NSLog (@"Selected theArgument=%d\n", index);

    UIViewController *viewController = [[[UIViewController alloc]init]autorelease];
    {
        //if file is built-in, read from the bundle
        if (index <= 4)
        {
            // first section is our build-in documents
            NSString *fileURLs = [_documentIconsURLs objectAtIndex:index];
            NSLog(@"%@", fileURLs);
            viewController = [[[viewController alloc]initWithContentURL:fileURLs]autorelease];
        }

1 Ответ

1 голос
/ 09 ноября 2011

Посмотрите пример кода Springboard, поставляемого с AQGridView.

И обменяйтесь кодами для SpringBoardIconCell и SpringBoardViewController с кодами, которые я поместил здесь .

В основном простодобавьте UILabel в SpringBoardIconCell, добавьте его в иерархию View и установите текст в gridView:cellForItemAtIndex: из источника данных.

и, наконец:

-(void)gridView:(AQGridView *)gridView didDeselectItemAtIndex:(NSUInteger)index
{
    NSString *fileName = [self.fileNames objectAtIndex:index]; 
    //do stuff
}
...