我的应用是基于视图的应用。第一个视图是登录视图。登录视图后,我有MainMenuCcontroller,它有一个tabBarController:
@interface RunnoMainMenuController : UIViewController {
IBOutlet UITabBarController *tabBarController;
}
从登录视图控制器,我将使用以下代码行进入MainMenuController:
[self presentModalViewController:mainMenu animated:YES];
此控制器有4个选项卡。现在我需要在tabBarItem的viewWillAppear中做一些事情。点击tabBarItem时不调用viewWillAppear。我在其中一个tabBarItem的视图中有一个按钮,它使用presentModalViewController弹出一个表视图控制器。这个tableView使用dismissModalViewControllerAnimated:YES来消除它。当我弹出这个tableview并将其关闭时,每个tabBarItem的viewWillAppear都能正常工作。如果我将在MainMenuController中解除modalViewController,那么它将再次返回登录视图。如何在不离开当前视图或任何其他解决方案的情况下解除modalViewController?提前致谢。
答案 0 :(得分:3)
您可能需要考虑如何呈现您的观看次数。标签栏控制器应始终是窗口的根视图控制器。来自Apple docs:
部署标签栏界面时,必须将此视图安装为 窗口的根。与其他视图控制器不同,是一个标签栏 接口永远不应该作为另一个视图的子项安装 控制器。
不是将您的登录视图显示为根视图,而是将标签栏显示为模式视图控制器,而是反过来尝试。标签栏控制器以root身份显示,登录视图最初显示为视图控制器中的模式视图控制器。解除此将显示标签栏控制器。