有没有人有示例代码说明如何使用框架中的“MXTouchViewGroup *”代码创建/使用底部的标签栏。查看MXToughViewGroup *的代码,我不会100%清楚如何使用标签栏设置/使用导航框架。不幸的是,MonoCross的书中也没有这种情况的例子。
任何帮助都将不胜感激。
先谢谢。
答案 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”),则不会呈现标签栏。
就是这样。