3

我正在开发一个应用程序,它使用导航控制器在各个页面之间移动。我需要能够强制用户在与 Web 服务通信时登录。我似乎无法让登录自行出现、加载、所有身份验证和卸载。

我正在阅读关于 SO 的文章,它是使用子视图并将其插入主视图。

这将包含登录字段、用户名、密码等,并且在成功验证后将变为不可见。然后它将在注销时再次可见。这个对吗?这是使用导航控制器为多页应用程序创建登录屏幕的最佳方式吗?

4

2 回答 2

2

有很多方法可以进行登录屏幕。对我来说,我在委托中声明了一个登录控制器。当我想显示登录屏幕时,我以模式调用。

[self.window.rootViewController presentModalViewController:loginScreen animated:YES];

因为我在委托中有它,所以我可以调用以显示登录屏幕,无论我在代码中的哪个位置,都可以通过挂钩回委托来显示登录屏幕。

任何控制器中的任何位置:

AppDelegate *myAppDelegate= (AppDelegate *)[[UIApplication sharedApplication]delegate];
[myAppDelegate logout];

然后在委托

-(void)logout{
[self.window.rootViewController presentModalViewController:loginScreen animated:YES];
//Do any logging out stuff here...
}
于 2012-11-09T08:51:37.613 回答
1

我目前正在开发与您相同的东西,这就是我的做法。我有一个ViewController,我们称之为 HomeViewController,它在我的应用启动时调用。

在该ViewDidLoad方法中,我检查是否有连接的用户(我的一些变量AppDelegate)。如果是,我会显示我的 HomeViewController,否则我会显示第二个视图控制器 (LoginViewController),它处理 WS 服务调用以及密码/登录的插入。

这种方式几乎和你的一样。我只是拆分了两个视图,以避免在“主”视图中使用太多代码。我没有找到其他方法来做到这一点。

顺便说一句,如果你想在多个页面之间移动,iOS 开发中有一个很棒的功能:故事板。

于 2012-11-09T08:46:23.717 回答