Вопрос

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

Есть идеи. Спасибо

Мой код:

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

    [self presentModalViewController:preview animated:YES];
Это было полезно?

Решение

QLPreviewController не имеет PreviewiteMtitle свойств. Вы имеете в виду qlpreviewitem протокол.

«Readonly» означает, что вы не можете его установить через недвижимость (если это не переопределено); то есть имущество не объявляет 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 Методы (например, если у вас был музыкальный проигрыватель, вы можете добавить эти методы в классе «Track» и сможете предварительно просмотреть дорожки).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top