2017-03-27 11 views
5

Czy można zmienić tytuł elementu w kontrolerze QLPreview?QLPreviewController zmienić tytuł?

Ja już próbowałem z:

  1. instacji QLPreviewController
  2. Dodaj

    override func viewDidAppear(_ animated: Bool) { 
        self.navigationController?.navigationBar.topItem?.title = "Bericht" 
    } 
    

Ale widzisz tytuł tylko przez jakieś 1/4 sekundy.

Wszelkie pomysły?

+0

Jak mogę zmienić nazwę URL bez zmiany nazwy pliku? – derdida

Odpowiedz

5

Jeśli chcesz wyświetlić inny tytuł innego niż lastPathComponent z adresu URL, można podklasy QLPreviewItem i podać swój własny tytuł wykonawczy opcjonalną właściwość:

Instance deklaracji właściwości:

var previewItemTitle: String? { get } 

Tytuł do wyświetlenia dla elementu podglądu.

Jeśli nie zaimplementować metodę getter dla tej właściwości, albo jeśli metoda zwraca nil, QuickLook analizuje URL lub treści pozycji ich stronę, aby określić odpowiedni tytuł do wyświetlania dla użytkownika . Zwróć wartość niezerową dla tej właściwości, aby podać niestandardowy tytuł .


protocol QLPreviewItem : NSObjectProtocol 

Opis Protokół

QLPreviewItem określa właściwości, które implementują aby zawartość swojej aplikacji za widoczny w QuickLook podglądu (QLPreviewController w iOS lub QLPreviewPanel MacOS). Metody w tym protokole są również zadeklarowane jako kategoria w klasie NSURL. W związku z tym można używać obiektów NSURL bezpośrednio jako elementów podglądu - pod warunkiem, że mają być używane domyślne tytuły tych elementów. Domyślny tytuł to ostatni komponent ścieżki adresu URL elementu. Jeśli chcesz dostarczyć własne tytuły elementów podglądu, stwórz własne obiekty podglądu, które adoptują ten protokół.

Pierwszy Podklasa QLPreviewItem:

import UIKit 
import QuickLook 
class PreviewItem: NSObject, QLPreviewItem { 
    var previewItemURL: URL? 
    var previewItemTitle: String? 
} 

Następnie w kontroler będzie zwrot QLPreviewItem zamiast adresu URL:

import UIKit 
import QuickLook 

class ViewController: UIViewController, QLPreviewControllerDelegate, QLPreviewControllerDataSource { 
    let item = PreviewItem() 
    override func viewDidLoad() { 
     super.viewDidLoad() 
     item.previewItemTitle = "Custom Title" 
     item.previewItemURL = Bundle.main.url(forResource: "your file", withExtension: "ext") 
    } 
    override func viewDidAppear(_ animated: Bool) { 
     super.viewDidAppear(animated) 
     quickLook() 
    } 
    func numberOfPreviewItems(in controller: QLPreviewController) -> Int { 
     return 1 
    } 
    func quickLook() { 
     let preview = QLPreviewController() 
     preview.delegate = self 
     preview.dataSource = self 
     preview.currentPreviewItemIndex = 0 
     present(preview, animated: true) 
    } 
    func previewController(_ controller: QLPreviewController, previewItemAt index: Int) -> QLPreviewItem { 
     return item 
    } 
} 
Powiązane problemy