gridr
gridr

Reputation: 135

Xamarin FlyoutNavigationController does not show section FooterView

I want to implement a flyout navigation in Xamarin.iOS. For this purpose I am using the FlyoutNavigationController, which works good so far.

But now I have to display some additional content underneath the navigation list inside of the flyout-menu (basically an image, some labels and buttons). For this purpose, I wanted to use the FooterView property of the "section" control that holds the menu items.

When I set

section.Footer = "Test";

it will work (I can see the text), but when I use the 'FooterView' property, nothing shows up:

public class ViewController : UIViewController
{
    FlyoutNavigationController navigation;

    private const string PageNamePage1 = "The first page";
    private const string PageNamePage2 = "The second page";

    readonly string[] pages = 
    {
        PageNamePage1,
        PageNamePage2
    };

    public override void ViewDidLoad()
    {
        base.ViewDidLoad();

        navigation = new FlyoutNavigationController
        {
            View =
            {
                Frame = UIScreen.MainScreen.Bounds
            }
        };

        View.AddSubview(navigation.View);

        var elements = pages.Select(page => new StringElement(page) as Element);

        navigation.NavigationRoot = new RootElement("Induserv App");

        var section = new Section();
        section.AddAll(elements);

        var uiTextView = new UITextView {Text = "--> This won't show!"};

        section.FooterView = new UIView
        {
            uiTextView
        };

        navigation.NavigationRoot.Add(section);

        navigation.ViewControllers = new UIViewController[]
        {
            new UINavigationController(new Page1Controller(navigation, PageNamePage1)),
            new UINavigationController(new Page2Controller(navigation, PageNamePage2)),
        };
    }
}

Does anyone have an idea what it needs to display this footer here? Is there another way to put some controls in this panel?

Upvotes: 0

Views: 558

Answers (1)

Alexandra
Alexandra

Reputation: 106

Set a frame for both the footer view and uiTextView, like so:

var uiTextView = new UITextView(new RectangleF(0, 0, 10, 10)) {Text = "--> This won't show!"};

section.FooterView = new UIView(new RectangleF(0, 0, 10, 10))
{
      uiTextView
};

Upvotes: 1

Related Questions