pipe理login/注销转换的build议
我有一个应用程序,只有当用户通过身份validation才能使用。 特别是,我创build了两个不同的UIViewController。 第一个叫做LoginViewController,第二个叫做HomeViewController。 在applicationDidFinishLaunching:
方法中,创buildLoginViewController,然后添加到rootViewController
属性中,如下所示:
LoginViewController* loginCtr = ... // alloc and initiWithNibName... self.window.rootViewController = loginCTr; [loginCtr release];
Whitin LoginViewController我创build了一个执行login的方法。 当用户通过身份validation时,我执行一个名为performLogin
的方法。
- (void)performLogin { MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate]; [appDelegate switchView]; }
swicthView
方法已经在Application委托类中实现了。
- (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 } }
鉴于以前的代码,是否可以实现更优雅的机制来pipe理login/注销转换,或者这种types的实现可以被认为是有价值的解决scheme?
先谢谢你。
另一个选项,我将设置HomeViewController作为rootViewController。 在viewDidLoad或viewDidAppear方法(在HomeViewController上显示任何信息之前),我将检查用户是否具有login凭证。 如果没有,我将显示loginViewController作为一个模式来请求用户login凭证。 在这种情况下,我不需要改变窗口的rootViewController。
从iOS 5开始,我开始使用UIViewController
的新包容API来pipe理login/注销转换。
实现一个容器视图控制器
如果iOS 5不可用,我会看到类似的方法写作高品质的视图控制器 。
希望有所帮助。