在需要注册的应用程序中管理视图控制器

我希望我的iOS应用程序遵循类似于Instagram中显示的导航模式:

instagram_iPhone_1instagram_iPhone_2instagram_iPhone_3

即…如果用户尚未登录,则会显示欢迎视图。 从那里,用户可以导航到登录视图或注册视图。 登录成功完成后,视图将向下滑动,然后主应用程序视图如下所示。 如果用户注销,则会再次显示欢迎视图。

我的应用程序也是一个标签。 我已经将AppDelegaterootViewController设置为UITabBarController ,我尝试通过UITabBarController的主视图呈现其UINavigationController来显示welcome>登录 / welcome>注册导航层次结构(正如我所说的那样,是rootViewController ) 。 但问题是,为了从主视图中呈现欢迎视图,我需要首先显示主视图,即使用户尚未登录。 如果没有登录,我不希望用户看到主视图。

我还尝试检查用户是否已在应用程序启动时登录,如果需要登录,则使用欢迎视图rootViewController作为rootViewControllerUITabBarController并隐藏选项卡栏。 然后从那里显示符号,如果登录成功则解雇它,并在此时填充UITabBarController其中包含主视图和我的应用程序的其余选项卡项。 但问题在于,当我关闭登录视图时,欢迎视图显示在主视图之前,其余的选项卡项被加载。 我不希望用户在登录视图被取消时再次看到欢迎视图,我想直接显示主视图,就像Instagram一样。

我怎么能在Instagram中实现这样的行为?

提前致谢

在应用程序开始时,确定用户是否已登录。

如果用户未登录:

  • 将rootViewController设置为UINavigationController并将Welcome视图添加到它。 (如果您希望它看起来像您发布的照片​​,则可以隐藏导航栏。)
  • 当他们点击寄存器或登录按钮时,将相应的视图控制器推到导航控制器堆栈上。
  • 成功登录后,使用UITabBarController 替换根视图控制器。

如果用户已登录:

将rootViewController设置为UITabBarController。