主控制器

通常在应用程序中,我们有以下流程:入职,登录,主要。 而且我们通常根据状态分别将OnboardingControllerLoginControllerMainController为根视图控制器。

我发现将MainController用作主流的容器很有用。 它可以是选项卡控制器,滑动菜单控制器或仅包含1个子视图控制器。 屏幕由子视图控制器提供,但是MainController进行以下工作

状态栏样式

我们通常需要在父控制器上调用preferredStatusBarStyle 。 参见stackoverflow.com/questions/19022210/preferredstatusbarstyle-isnt-called

应用已启用

通常,当应用程序进入前台时,我们需要获取登录的用户配置文件以查看是否有更改。 我们通过监听app did become activeMainController app did become active来做到这一点。

模拟打开

这可以是反模式。 但是在UI测试中,出于懒惰,我们可以只使用一些启动参数并检查以显示要测试的特定屏幕,因为MainController是主流的根。

登出

因为事物起源于MainController ,所以事物可以终止于MainController 。 我们可以处理logout ,清除状态,并告诉MainController告诉AppDelegate切换到另一个根控制器


原始故事https://github.com/onmyway133/blog/issues/36