Я могу создать простую вкладку Renderer, которая обновит мои Forms ToolBarItems, чтобы использовать встроенные значки iOS, как показано ниже.
NavigationController
только NOT NULL
в ViewWillAppear
Если я попробую его в ViewDidLoad
, это NULL
.
Проблема с этим заключается в том, что вы получаете вспышку текста элемента TabBar, прежде чем он будет заменен фактическим значком.
Есть ли другое место, где я должен перехватывать поведение ToolBar?
[assembly: ExportRenderer(typeof(TabbedPage), typeof(TabRenderer))]
namespace Cellar.iOS.Renders
{
public class TabRenderer : TabbedRenderer
{
public override void ViewWillAppear(bool animated)
{
base.ViewWillAppear(animated);
var list = new List<UIBarButtonItem>();
foreach (var item in NavigationController.TopViewController.NavigationItem.RightBarButtonItems)
{
if (string.IsNullOrEmpty(item.Title))
{
continue;
}
if (item.Title.ToLower() == "add")
{
var newItem = new UIBarButtonItem(UIBarButtonSystemItem.Add)
{
Action = item.Action,
Target = item.Target
};
list.Add(newItem);
}
if (list.Count > 0)
NavigationController.TopViewController.NavigationItem.RightBarButtonItems = list.ToArray();
}
}
}
}