QLPreviewController - настройка previewItemTitle - PullRequest
4 голосов
/ 24 сентября 2010

Я не могу понять, как установить свойство previewItemTitle для моего класса QLPreviewController.Это кажется немного странным, так как документ для разработчиков iPhone для этого класса говорит, что это свойство @property (readonly), что означает, что я не могу его установить.Спасибо

Мой код:

QLPreviewController *preview = [[QLPreviewController alloc] init];
    [preview setDataSource:self];

    [self presentModalViewController:preview animated:YES];

1 Ответ

16 голосов
/ 25 сентября 2010

QLPreviewController не имеет свойства previewItemTitle.Вы имеете в виду протокол QLPreviewItem .

«Только чтение» означает, что вы не можете установить его через свойство (если оно не переопределено);то есть свойство не объявляет метод setPreviewItemTitle:.Это имеет смысл для протокола: контроллер не рассчитывает установить заголовки элементов предварительного просмотра.

Для самого основного элемента предварительного просмотра вы можете использовать что-то вроде этого:

@interface BasicPreviewItem : NSObject<QLPreviewItem>
{
}

@property (nonatomic, retain) NSURL * previewItemURL;
@property (nonatomic, copy) NSString* previewItemTitle;

@end

@implementation BasicPreviewItem

@synthesize previewItemURL, previewItemTitle;

-(void)dealloc
{
  self.previewItemURL = nil;
  self.previewItemTitle = nil;
  [super dealloc];
}

@end

Однако суть протокола в том, что вы можете взять любой класс и добавить методы -(NSURL*)previewItemURL и -(NSString*)previewItemTitle (например, если у вас есть музыкальный проигрыватель, вы можете добавить эти методы в «Дорожку»)."Класс и возможность предварительного просмотра треков).

...