如何在ios xamarin表单中添加徽标到导航栏

时间:2018-01-09 10:20:23

标签: xamarin xamarin.forms xamarin.ios

在我的项目中,我想在导航栏中添加徽标。在android中使用自定义渲染器我已将徽标放置在导航栏中。但我不知道如何在ios xamarin表格中全局设置导航栏中的徽标。任何人都建议如何解决这个问题。

我试过这样,

NavigationPage.SetTilteIcon(this, "icon.png"); //但图片不显示

Icon placement Reference Screenshot

2 个答案:

答案 0 :(得分:0)

您可以尝试将图标设置为:

Application.Current.MainPage = new NavigationPage(new FirstPageName() { Icon="icon.png"});

导航到另一个页面时,您可以将其写为:

this.Navigation.PushAsync(new SecondPageName() { Icon="icon.png"});

确保iOS项目文件夹中有图标图像。

答案 1 :(得分:0)

您可以为单个页面尝试自定义渲染器。但我们无法在全球范围内设置它。因为在iOS中每个ViewController都有一个NavigationItem,我们应该在需要时设置它。

以下是有关如何在页面渲染器中设置NavigationItem的一些代码:

public override void ViewWillAppear(bool animated)
{
    base.ViewWillAppear(animated);

    UIView leftView = new UIView(new CGRect(0, 0, 100, 40));
    UIImageView imgView = new UIImageView(UIImage.FromBundle("icon.png"));
    imgView.Frame = new CGRect(0, 5, 30, 30);
    leftView.AddSubview(imgView);

    UILabel label = new UILabel(new CGRect(30, 10, 70, 20));
    label.Text = "page Title";
    leftView.AddSubview(label);

    //add event
    UITapGestureRecognizer tap = new UITapGestureRecognizer((sender) =>
    {

    });
    leftView.AddGestureRecognizer(tap);
    leftItem = new UIBarButtonItem(leftView);

    NavigationController.TopViewController.NavigationItem.SetLeftBarButtonItem(leftItem, true);
}

请注意,将此图片源放在iOS的项目中。

此外,如果您确实想在每个页面中显示此图标图像。尝试创建一个基页并为其构建此渲染器。然后让你的页面继承它。