我有一个只有在用户通过身份验证后才能使用的应用程序。特别是,我创建了两个不同的 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/