2016-05-23 3 views
0

Мое приложение поддерживает устройства iOS8 +. Я хочу скрыть правую кнопку «Действие» на панели навигации. Исследованием я нашел следующие несколько обходных путей:Действительный способ скрыть QLPreviewController RightBarButtonItem/RightBarButtonItems Xamarin iOS

1. Создать Суб класс QLPreviewController и в ViewDidAppear SetRightBarButtonItems к нулю.

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

В этом случае проблема RightBarButtonItem появляется, а затем исчезает. В то время как пользователь может нажать на эту кнопку RightBarButtonItem. Я не хочу этого поведения.

2. Создать UIViewController и добавить QLPreviewController как детский ViewController.

недействительным BtnShowPdf_Clicked (объект отправителя, EventArgs е) {

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

В этом случае если я устанавливаю QLPreviewController это работает, как ожидалось. Но NavigationBar становится более темным, чем цвет фона ViewController по умолчанию.

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

Необходим ясный фон бар как: http://screencast.com/t/MUwE2VnxJ7

Мои вопросы:

A) Я хотел бы знать, что правильный способ, чтобы скрыть право Навигационная панель в соответствии с рекомендациями Apple? Если у вас есть правильное решение , тогда они также оценены.

B) Также вы можете предложить решение (ы) для №1 или №2?

ответ

0

Довольно, что вы можете сделать это:

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

     self.navigationItem.rightBarButtonItems = nil 
    } 
Смежные вопросы