Я могу создать простой вкладчик Renderer, который обновит мои Forms ToolBarItems, чтобы использовать встроенные значки iOS, как показано ниже.Xamarin Forms iOS Renderer - ToolBar Стандартные значки
NavigationController
только НЕ 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();
}
}
}
}
Попытка переместить 'base.ViewWillAppear (анимированный); 'до конца –
Это не работает, спасибо. – aherrick
Получаете ли вы эту вспышку на тренажере или реальном устройстве? –