在MonoCross.Touch应用程序中使用“MXTouchViewGroup *”的MonoCross示例

时间:2012-05-16 23:25:27

标签: ios mono xamarin.ios uitabbarcontroller monocross

有没有人有示例代码说明如何使用框架中的“MXTouchViewGroup *”代码创建/使用底部的标签栏。查看MXToughViewGroup *的代码,我不会100%清楚如何使用标签栏设置/使用导航框架。不幸的是,MonoCross的书中也没有这种情况的例子。

任何帮助都将不胜感激。

先谢谢。

1 个答案:

答案 0 :(得分:0)

因此,在使用MonoCross源代码后,我已经弄清楚如何在使用MonoCross模式时使用MonoTouch / iOS标签栏,特别是在继续使用MonoCross.Navigation移动应用程序时:

//------- MonoCross Shared Application

// Main Menu
NavigationMap.Add("Menu/Tab1", new Tab1Controller());
NavigationMap.Add("Menu/Tab2", new Tab2Controller());
NavigationMap.Ass("Other", new OtherController());

// Set default navigation URI
NavigateOnLoad = "Menu/Tab1";

//------- MonoCross.Touch Container

// init monocross application
MXTouchContainer.Initialize(new SharedApplication(), this, window)

// Add view to container as usual
MXTouchContainer.AddView<ModelTab1>(typeof(Tab1View),ViewPerspective.Default);
MXTouchContainer.AddView<ModelTab2>(typeof(Tab2View),ViewPerspective.Default);
MXTouchContainer.AddView<ModelOther>(typeof(OtherView),ViewPerspective.Default);

// Create a MXTouchViewGroup, with items representing tab items     
MXTouchViewGroupItem[] menuItems = new MXTouchViewGroupItem[] {
        new MXTouchViewGroupItem(typeof(Tab1View),"Tab 1!",""),
        new MXTouchViewGroupItem(typeof(Tab2View),"Tab 2!",""), 
            };
MXTouchViewGroup tvg = new MXTouchViewGroup(new MXTouchViewGroupTabController(),menuItems);

// Add the group to MXTouchContainer.ViewGroups 
List<MXTouchViewGroup> ltvg = ((MXTouchContainer)MXTouchContainer.Instance).ViewGroups;
ltvg.Add(tvg);

// navigate to to starting location now
MXTouchContainer.Navigate(null,MXTouchContainer.Instance.App.NavigateOnLoad);

在共享应用程序中,像往常一样创建从MXController派生的控制器,并将它们添加到NavigationMap。在“共享应用程序”

中完全没什么特别的

在MonoCross Container中,您可以像往常一样将从MXTouch * View派生的视图添加到容器中。不同的做法是创建一个“MXTouchViewGroup”,为每个选项卡创建一个“MXTouchViewGroupItems”;每个“MXTouchViewGroupItem”都有一个与之关联的视图。您需要为标签栏创建一个合适的“MXTouchViewGroup”项,然后将该组添加到“MXTouchContainer”中,如图所示,然后让框架像往常一样导航到第一个视图。

所有这一切的结果是,当导航到“组”中的视图(即“Tab1View”或“Tab2View”)时,框架将自动呈现带有视图的标签栏,而无需任何进一步干预。如果您导航到不在“组”中的视图(即“OtherView”),则不会呈现标签栏。

就是这样。