在应用启动时显示登录屏幕

时间:2011-04-19 17:15:01

标签: iphone delegates login modal-dialog

在我之前的question on UIView animations我提到过,我必须模拟某些视图的模态行为。在这里,我将解释原因,并询问一些更好的解决方案。

用户应在我的应用中看到的第一个视图是登录屏幕。验证成功后,程序将检查用户是父母还是孩子(在一个家庭中)。对于这些角色中的每一个,应用必须提供不同的功能。

所以我设计了这样的应用程序:

  • 在我的AppDelegate中声明登录视图控制器和标签栏控制器(用于界面的主要部分)的出口。
  • application:didFinishLaunchingWithOptions:方法中
    • 将主窗口的rootViewController设置为登录视图控制器。
    • 使AppDelegate成为登录控制器的委托,因此它可以在完成工作时发送通知。
  • 当AppDelegate在成功登录时收到消息时,它确定用户是父节点还是子节点,实例化提供相应功能的视图控制器集并将它们传递给标签栏控制器。
  • 最后,AppDelegate将主窗口的rootViewController切换到标签栏控制器。
  • 当然用户可以退出,然后rootViewController再次切换回登录控制器。

我想呈现和关闭登录屏幕,好像它是一个模态视图,但AppDelegate只有一个裸窗口,因此我没有一个发送presentModalViewController:的对象。这提出了一个问题:

首先,这是一个好的设计吗? 如果是,我该如何正确模拟模态行为?

2 个答案:

答案 0 :(得分:0)

我认为你走在正确的轨道上。 但是,我总是试图尽快离开应用程序代理,只留下应用程序级别的事情(比如响应通知,进入和退出后台)。在这种情况下,这样做会对你有帮助。

在appDelegate中,创建一个新的UIViewController类,类似于“startUpController”。 将其视图添加到应用程序窗口。 然后在你的startUpController中,做你以前在app委托中做的所有事情(登录,标签栏设置等)。 现在,既然你在一个视图控制器中,你可以将心灵内容控件呈现给你的内容。

答案 1 :(得分:0)

斐伊川,

你应该参考这个

http://code.google.com/p/tweetero/

https://github.com/jbrien/WordPress-iPhone

希望这有帮助!