2

我对使用 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 隐藏?我认为我在这里遗漏了一些关于我的应用程序结构的基本内容。

4

1 回答 1

4

你想像这样设置你的层次结构:

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

所以每个选项卡都会有它自己的导航控制器,它会有一个初始视图推送到它上面。

在您的示例中,您将 Nav 控制器作为根,包含 Tab 控制器。这是倒退的——您希望 Tab 控制器包含 Nav 控制器。

于 2013-10-18T16:30:48.063 回答