故事板登录屏幕的最佳做法,注销时处理数据清除
我正在使用Storyboard构建iOS应用。根视图控制器是一个标签栏控制器。我正在创建登录/注销过程,并且工作正常,但是我遇到了一些问题。我需要知道设置所有这些的最佳方法。 我要完成以下任务: 首次启动应用程序时显示登录屏幕。他们登录时,转到“标签栏控制器”的第一个标签。 他们之后在任何时候启动应用程序,请检查它们是否已登录,然后直接跳到根选项卡栏控制器的第一个选项卡。 当他们手动单击注销按钮时,将显示登录屏幕,并清除视图控制器中的所有数据。 到目前为止,我所做的是将根视图控制器设置为“ Tab Bar控制器”,并为“登录”视图控制器创建了自定义序列。在我的Tab Bar Controller类中,我检查它们是否已在viewDidAppear方法内部登录,并执行以下命令:[self performSegueWithIdentifier:@"pushLogin" sender:self]; 我还设置了有关何时需要执行注销操作的通知: [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(logoutAccount) name:@"logoutAccount" object:nil]; 注销后,我从钥匙串中清除凭据,运行[self setSelectedIndex:0]并执行segue以再次显示登录视图控制器。 一切正常,但我想知道:这种逻辑是否应该在AppDelegate中?我还有两个问题: 他们首次启动该应用程序时,会在执行Segue之前短暂显示Tab Bar Controller。我曾尝试将代码移到其中,viewWillAppear但是segue不能这么早地起作用。 当他们注销时,所有数据仍位于所有视图控制器中。如果他们登录到新帐户,则在刷新之前仍会显示旧帐户数据。我需要一种在注销时轻松清除此问题的方法。 我愿意对此进行修改。我考虑过将登录屏幕设为根视图控制器,或者在AppDelegate中创建一个导航控制器来处理所有事情……我只是不确定目前最好的方法是什么。