关于UIViewController层次结构和流程的建议

时间:2014-02-28 07:55:20

标签: ios objective-c uiviewcontroller

我花了很多时间阅读苹果View Controller Programming,但仍无法弄清楚如何为我的流程编码。

我正在使用ViewController,PageViewController和Storyboard。

我的 rootViewController 是一个ViewController 我还想要两个ViewController

  • 首先, PageViewController 显示教程页面,最后一页注册时使用presentViewController登录
  • secondViewController ,ViewController是应用程序的主要内容

如果案例用户在钥匙串中有令牌,则会转到 secondViewController 。 注册或登录后导致 secondViewController

我没有使用导航控制器。不知道这可以通过容器视图控制器完成吗?

当前问题在signupViewController中,self.parentViewController是 pageViewController 但我无法获取 rootViewController ,以解除并添加secondViewController

P / S但是在loginViewController中,self.presentingViewController我得到了rootViewController !!这超出了我的期望..我想知道为什么???

2 个答案:

答案 0 :(得分:0)

你使用故事板,所以我假设你也会使用segue。您的PageViewController可以是入口点,带有segue到secondViewController。

如果您在钥匙串中有令牌,则可以使用以下命令以编程方式执行segue:

[self performSegueWithIdentifier: @"MySegue" sender: self];

否则用户会继续使用PageViewController来提供其原始流程。

答案 1 :(得分:0)

  1. 在AppDelegate中将secondViewController设置为UIWindow的rootViewController。 SecondViewController包含基本视图内容,没有关于登录的数据,因此您可以尽快启动。
  2. 如果用户在钥匙串中有令牌,只需更新具有登录状态的SecondViewController视图。
  3. 如果用户在钥匙串中没有令牌,则在SecondViewController上显示PageViewController,同时展示一个viewController或者只是addSubview。在PageViewController之后,出现loginViewController,登录完成后,关闭loginViewController,更新SecondViewController视图,登录状态与step2相同