使用Monotouch如何实现UITabBarController作为我的RootViewController

时间:2013-10-18 15:23:33

标签: c# xamarin.ios uitabbarcontroller

我对使用Monotouch的iOS编程完全不熟悉......我正在使用此代码创建导航根视图。

window = new UIWindow(UIScreen.MainScreen.Bounds);

UINavigationController rootNavController = new UINavigationController ();
window.RootViewController = rootNavController;

UIViewController tabView = new TabContainer ();
rootNavController.PushViewController (tabView, false);

我的TabContainer类继承了UITabBarController类,我将几个UIViewControllers添加到UITabBarController类中。

var tabs = new UIViewController[] {
     tab1, tab2, tab3, tab4, tab5
};

base.ViewControllers = tabs;

单击其中一个选项卡后,我的ViewController将在其中加载UITableView,我仍然可以在底部看到TabBarController。如果我现在点击任何表格单元格,我正在推动一个新视图,并隐藏TabBarController。

tblSource.OnRowSelected += (object sender, TableSourceStationGroup.RowSelectedEventArgs e) => {
            e.tableView.DeselectRow (e.indexPath, true);
            stationView = new viewStation (itemList[e.indexPath.Row].Name, itemList[e.indexPath.Row].Id, itemList[e.indexPath.Row].Stations);
            this.NavigationController.PushViewController(stationView, true);

当我推新视图时,如何防止TabBarController隐藏?我想我错过了一些关于我的应用程序结构的基本信息。

1 个答案:

答案 0 :(得分:4)

您希望像下面这样设置层次结构:

                           Tab1 -> Nav1 -> View
Root --> Tab Controller -> Tab2 -> Nav2 -> View
                           Tab3 -> Nav3 -> View

因此每个选项卡都有自己的Nav控制器,它将初始视图推送到它上面。

在您的示例中,您将Nav控制器作为根,包含Tab控制器。这是向后的 - 您希望Tab控制器包含Nav控制器。