2017-03-27 13 views
5

Bir QLPreviewController'daki bir öğenin başlığını değiştirmek mümkün müdür? QLPreviewController başlığı değiştir?

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

    1. Subclassing QLPreviewController Ama sadece belki 1/4 saniye başlığı görmek:

      Zaten ile denedim.

      Herhangi bir fikrin var mı? Eğer url'den lastPathComponent dışındaki farklı bir başlık göstermek gerekirse

    +0

    Nasıl dosyayı yeniden adlandırma olmadan url adlandırabilirsiniz? – derdida

    cevap

    5

    , sen QLPreviewItem alt sınıfı ve opsiyonel özellik uygulayan kendi başlığı sağlayabilir:

    Örnek Mülkiyet Bildirisi:

    var previewItemTitle: String? { get } 
    

    Önizleme öğesi için görüntülenecek başlık. Bu özellik için bir alıcı yöntemini uygulamak yoksa

    , sizin metot bize nil veya eğer QuickLook'u kullanıcıya göstermek için uygun bir başlık belirlemek için önizlemesi öğenin URL'sini veya içeriğini inceler. Özel bir başlığı sağlamak için bu özellik için sıfır olmayan bir değer döndürün.


    protocol QLPreviewItem : NSObjectProtocol 
    

    Açıklama

    QLPreviewItem protokolü (MacOS iOS veya QLPreviewPanel içinde QLPreviewController) Bir QuickLook'u önizleme içinde uygulamanın içeriği görünür kılmak için uygulamaya özellikleri tanımlar. Bu protokolde yöntemleri de NSURL sınıfında bir kategori olarak bildirilmiştir. Sonuç olarak, bu öğelerin varsayılan başlıklarını kullanmak istediğinizde, NSURL nesnelerini doğrudan önizleme olarak öğeler olarak kullanabilirsiniz. Varsayılan başlık, bir öğenin URL'sinin son yol bileşenidir. kendi önizleme öğesi başlıklarınızı sağlamak istiyorsanız, bu protokolü benimseyen kendi önizlemeni öğe nesnelerini oluşturun.

    İlk Alt sınıf QLPreviewItem:

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

    Sonra denetleyicisi size URL yerine QLPreviewItem dönmek:

    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 
        } 
    }