我使用的是NavigationController,我希望其UINavigationBar的GetPositionForBar()方法始终返回UIBarPosition.TopAttached
。由于我使用的是UINavigationController,因此无法更改NavigationBar委托,所以我不确定如何继续。
我尝试了很多东西,其中一个是:
public class CustomNavigationController : UINavigationController, IUINavigationBarDelegate
{
[Export ("positionForBar:")]
public UIBarPosition GetPositionForBar(IUIBarPositioning barPositioning)
{
return UIBarPosition.TopAttached;
}
}
但它没有用。我怎样才能做到这一点?我使用的是Xamarin / Monotouch。
答案 0 :(得分:0)
我最终手动创建了自己的UINavigationBar
并将其添加到View的顶部,这样我就可以更改代理。
答案 1 :(得分:0)
你设置了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;
}
}