0

我的应用支持 iOS8+ 设备。我想从导航栏中隐藏右操作按钮。通过研究,我发现了以下几种解决方法:

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。

void BtnShowPdf_Clicked(对象发送者,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;
}

在这种情况下,如果我设置 QLPreviewController 它按预期工作。但是 NavigationBar 变得比默认的 ViewController 背景颜色更暗。

黑条: http ://screencast.com/t/bqVMv5qqGz

需要清晰的背景栏,例如: http ://screencast.com/t/MUwE2VnxJ7

我的问题是:

A)我想知道根据 Apple 指南隐藏右侧导航栏按钮的正确方法是什么?如果您有正确的解决方案,那么这些也将受到赞赏。

B)您能否为#1 或#2 提出解决方案?

4

1 回答 1

0

很确定你可以这样做:

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

        self.navigationItem.rightBarButtonItems = nil
    }
于 2017-01-17T13:19:38.817 回答