2016-05-23 6 views
0

Meine App unterstützt iOS8 + -Geräte. Ich möchte die rechte Aktionsschaltfläche in der Navigationsleiste ausblenden. Durch Forschung fand ich folgende paar Abhilfen:Gültige Methode zum Ausblenden von QLPreviewController RightBarButtonItem/RightBarButtonItems Xamarin iOS

1. erstellen Sub-Klasse von QLPreviewController und in ViewDidAppear SetRightBarButtonItems auf Null.

public class PdfViewController : QLPreviewController 
{ 
    public override void ViewDidAppear (bool animated) 
    { 
     base.ViewDidAppear (animated); 
     NavigationItem.SetRightBarButtonItems (new UIKit.UIBarButtonItem[0], false); 
    } 
} 

In diesem Fall Problem RightBarButtonItem erscheint und verschwindet dann. Während Benutzer in der Lage ist, auf die RightBarButtonItem-Schaltfläche zu klicken. Ich will dieses Verhalten nicht.

2. UIViewController erstellen und QLPreviewController als Kind Viewcontroller hinzu.

Leere BtnShowPdf_Clicked (object sender, EventArgs e) {

var dummyVC = new UIViewController(); 
    var pdfVC = new PdfViewController(); 

    dummyVC.AddChildViewController (pdfVC); 
    dummyVC.View.AddSubview (pdfVC.View); 
    dummyVC.NavigationItem.SetRightBarButtonItems (new UIBarButtonItem[0], false); 

    dummyVC.EdgesForExtendedLayout = UIRectEdge.None; 
    dummyVC.AutomaticallyAdjustsScrollViewInsets = false; 
    dummyVC.View.BackgroundColor = UIColor.Clear; 

    pdfVC.EdgesForExtendedLayout = UIRectEdge.None; 
    pdfVC.AutomaticallyAdjustsScrollViewInsets = false; 
    pdfVC.View.BackgroundColor = UIColor.Clear; 
} 

In diesem Fall Wenn ich gesetzt QLPreviewController es funktioniert wie erwartet. Aber NavigationBar wird dunkler als Standard-ViewController-Hintergrundfarbe.

dunkle Bar: http://screencast.com/t/bqVMv5qqGz

benötigt klaren Hintergrund Bar wie: http://screencast.com/t/MUwE2VnxJ7

Meine Fragen sind:

A) Ich möchte wissen, was der richtige Weg ist, richtig zu verbergen Navigationsleiste Taste nach Apple-Richtlinien? Wenn Sie die richtige Lösung haben, werden diese auch geschätzt.

B) Auch können Sie bitte Lösung (en) für # 1 oder # 2 vorschlagen?

Antwort

0

Ziemlich sicher, dass Sie können dies tun:

override func viewWillAppear(_ animated: Bool) 
    { 
     super.viewWillAppear(animated) 

     self.navigationItem.rightBarButtonItems = nil 
    }