2016-05-23 8 views
0

My appは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を作成し、子のViewControllerとしてQLPreviewControllerを追加します。この場合

空隙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の背景色より暗くなります。

ダークバー: 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 
    } 
関連する問題