我们可以为任何窗口的应用程序创建选项卡控制器吗?我只知道创建主窗口。
不,你不能在其他视图控制器上添加UITabBarController(如果这就是你所说的"any window")。它应该是你的应用程序的根控制器。如果你把它添加到其他控制器,它将无法正常工作。
你不能将它添加到任何其他控制器中,但你可以在MainWindow中添加它,并使它仅在几个viewcontroller中出现并起作用,而不是在整个应用程序中。在AppDelegate中添加UITabBarController并定义它。现在,如果你不想在应用程序中首先使用选项卡栏,你需要在主窗口中添加一个导航控制器作为子视图,如下所示:
[self.window addSubview:navController.view];
[self.window makeKeyAndVisible];
现在,当你移动到其他控制器,你希望使标签栏控制器出现,那么你将不得不从子视图中删除navigationController,并将标签栏控制器添加到子视图。为此,在AppDelegate中创建一个单独的方法:
-(void)Load_tabBar
{
[self.navController.view removeFromSuperview];
[self.window addSubview:tabBarController.view];
[self.window makeKeyWindow];
}
再次删除标签栏,在另一个方法中执行相反的操作:
-(void)remove_tabBar
{
[self.tabBarController.view removeFromSuperview];
self.tabBarController.selectedIndex=0;
[self.window addSubview:navController_initiale.view];
[self.window makeKeyWindow];
}
这个可以帮你完成这项工作!