ios - 管理登录/注销转换的建议

标签 ios authentication uiviewcontroller uiapplicationdelegate

我有一个只有在用户通过身份验证后才能使用的应用程序。特别是,我创建了两个不同的 UIViewController。第一个称为 LoginViewController,而第二个称为 HomeViewController。在 applicationDidFinishLaunching: 方法中,创建了 LoginViewController,然后将其添加到 rootViewController 属性中,如下所示:

LoginViewController* loginCtr = ... // alloc and initiWithNibName... 
self.window.rootViewController = loginCTr;
[loginCtr release];

在 LoginViewController 中,我创建了一个执行登录的方法。当用户通过身份验证后,我将执行一个名为 performLogin 的方法。

- (void)performLogin
{
  MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
  [appDelegate switchView];    
}

其中 swicthView 方法已在 Application 委托(delegate)类中实现。

- (void)switchView
{
   if(VIEW_TYPE == kLogin) // Display Login
   {
     // create a new LoginViewController and assign it to rootViewController
   }

   else // Display Home
   {
     // create a new HomeViewController and assign it to rootViewController
   }
}

鉴于前面的代码,是否可以实现更优雅的机制来管理登录/注销转换,或者这种类型的实现是否可以被视为有值(value)的解决方案?

提前谢谢你。

最佳答案

另一种选择,我会将 HomeViewController 设置为 rootViewController。在 viewDidLoad 或 viewDidAppear 方法中(在 HomeViewController 上显示任何信息之前),我将检查用户是否具有登录凭据。如果没有,我会将 loginViewController 显示为请求用户登录凭据的模式。在这种情况下,我不需要更改窗口的 rootViewController。

关于ios - 管理登录/注销转换的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8512741/

相关文章:

java - Spring MVC 和 shiro 中的多个领域用于处理不同 url 集的身份验证

django - 在 VueJS 中存储身份验证 token 的最佳实践?

iphone - 按下 View Controller 时出现黑屏

ios - 尽管 cellForRowAtIndexPath 返回有效单元格,但 UITableView 崩溃

ios - `pushViewController:animated:` 带有淡入淡出动画(仅限动画过渡)?

ios - 报亭推送通知未启动应用程序

ios - 使用 setNeedsDisplay

ios - 如何使用 post 方法将字典参数传递给 url

ios - 为什么我不能对 UITableView header 中的照片应用约束?

iphone - 如何使用 swift 验证本地播放器?