我对使用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隐藏?我想我错过了一些关于我的应用程序结构的基本信息。
答案 0 :(得分:4)
您希望像下面这样设置层次结构:
Tab1 -> Nav1 -> View
Root --> Tab Controller -> Tab2 -> Nav2 -> View
Tab3 -> Nav3 -> View
因此每个选项卡都有自己的Nav控制器,它将初始视图推送到它上面。
在您的示例中,您将Nav控制器作为根,包含Tab控制器。这是向后的 - 您希望Tab控制器包含Nav控制器。