我可以创建一个简单的选项卡渲染器,它可以更新我的表单工具栏项目以使用内置的iOS图标,如下所示。
在ViewWillAppear中才有非NULL的NavigationController。如果我在ViewDidLoad中尝试,则为NULL。
问题在于在实际图标替换之前会先显示选项卡条目文本。
是否有其他地方应该拦截工具栏行为?
在ViewWillAppear中才有非NULL的NavigationController。如果我在ViewDidLoad中尝试,则为NULL。
问题在于在实际图标替换之前会先显示选项卡条目文本。
是否有其他地方应该拦截工具栏行为?
[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(animated);
移动到末尾。 - Gerald Versluis