0

我是 iOS 开发的新手,我尝试创建一个具有登录视图的应用程序,成功登录后它会显示一个包含 3 个项目的选项卡栏菜单。

菜单项 1:是加载选项卡栏时出现的默认菜单项。

菜单项 2:是申请表。成功提交应用程序后,它会使用以下代码加载默认菜单项。

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:storyboardName bundle: nil];
UIViewController * vc = [storyboard instantiateViewControllerWithIdentifier:@"Default_Menu"];
[self presentViewController:vc animated:YES completion:nil];

菜单项 3:是注销,它应该使用以下代码加载登录屏幕:

[self dismissViewControllerAnimated:NO completion:nil];
[self.navigationController popToRootViewControllerAnimated:YES];

问题是(我猜)在成功提交表单并随后重新加载默认菜单项之后,会创建一个新的视图层次结构。结果是,在成功完成表单后,选择“注销”会导致表单提交之前的视图(文本字段显示为用户输入完成等)。第二个“注销”似乎会导致登录视图,但这不是所需的行为(一个注销选择就足够了)。

关于如何保持所需的视图层次结构并立即访问初始登录视图有什么想法吗?

4

1 回答 1

0

您不必再次实例化默认选项卡视图控制器,它已经加载到内存中,因此只需使用以下代码切换到它:

self.tabBarController.selectedIndex = 0;

现在关于视图层次结构,您可以简单地使用 4 个视图控制器制作故事板:

  1. 默认登录名(会自动出现)
  2. 将其与 segue 链接到选项卡栏控制器
  3. 登录成功时执行此 segue
  4. 在情节提要中添加 3 个子控制器,它们是您的三个选项卡 :)
  5. 第一个默认出现

我希望这能解决你的问题

于 2015-01-28T09:19:50.530 回答