【问题标题】:Override NavigationBar's GetPositionForBar() using NavigationController - Xamarin使用 NavigationController 覆盖 NavigationBar 的 GetPositionForBar() - Xamarin
【发布时间】:2015-10-13 12:23:08
【问题描述】:

我正在使用 NavigationController,我希望它的 UINavigationBar 的 GetPositionForBar() 方法始终返回 UIBarPosition.TopAttached。由于我使用的是 UINavigationController,因此无法更改 NavigationBar 委托,因此我不确定如何继续。

我尝试了很多东西,其中之一是:

public class CustomNavigationController : UINavigationController, IUINavigationBarDelegate
{
    [Export ("positionForBar:")]
    public UIBarPosition GetPositionForBar(IUIBarPositioning barPositioning)
    {
        return UIBarPosition.TopAttached;
    }
}

但它不起作用。我怎样才能做到这一点?我正在使用 Xamarin/Monotouch。

【问题讨论】:

    标签: xamarin xamarin.ios navigationbar navigationcontroller


    【解决方案1】:

    我终于手动创建了自己的UINavigationBar,并将其添加到了View的顶部,这样我就可以更改委托了。

    【讨论】:

      【解决方案2】:

      你设置了 WeakDelegate 吗?像

      public class MyTableViewController : UITableViewController {
          public override void ViewDidLoad() {
              _searchController = new UISearchController();
              _searchController.SearchBar.WeakDelegate = this;
          }
      
          [Export ("positionForBar:")]
          public UIBarPosition GetPositionForBar(IUIBarPositioning barPositioning)
          {
              return UIBarPosition.TopAttached;
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-01-21
        • 2019-12-13
        • 1970-01-01
        • 1970-01-01
        • 2020-08-02
        相关资源
        最近更新 更多