使用viewControllers - iPhone完成此方案的最佳方法

时间:2010-11-03 18:42:07

标签: iphone objective-c cocoa sdk

我正在编写一个允许iPhone用户登录其帐户的应用。登录后,用户可以提取信息,更改密码,通过Web服务更改其他类型的数据。我是iPhone编程新手,我在viewController设置上有点困惑来处理这个问题。我想做的是以下几点; 1)如果用户未登录 - 显示一个视图,该视图占据整个屏幕,显示我的登录/密码文本字段等。(我将设置一些条件,检查用户是否已将u / p保存在的plist)

2)如果用户已登录或用户登录后,请删除当前的完整大小视图并加载tabBar视图。如果用户注销,则将加载主登录视图。

对于这个特定场景,我需要两个viewControllers吗?我在视图控制器上阅读了很多内容。阅读所有Apple文档,但我仍然感到困惑,因为有很多选项/方法可供使用。

我一如既往地感谢你。

Ť

3 个答案:

答案 0 :(得分:0)

我将如何做到这一点:

  • 标签栏控制器是您的主视图控制器。首先将其初始化(在主NIB文件中)并将其添加到应用程序代理中的窗口。

  • application:didFinishLaunchingWithOptions:中,检查用户是否已登录。如果没有,您立即将登录屏幕显示为模态视图控制器。如果在没有动画的情况下执行此操作,用户将不会注意到标签栏控制器已经存在于下方。

  • 当用户登录时,您将关闭模态视图控制器,并且标签栏UI变为可见。

答案 1 :(得分:0)

您应该考虑创建基于导航的应用程序。这将内置一个UINavigationController。您可以使用它来控制您的窗口。

答案 2 :(得分:0)

只是众多可能选项中的一个:

创建LoginViewControllerUITabBarViewController。应用程序代表将检查启动时是否已拥有用户凭据并显示相应的控制器

if ([dataModel hasUserCredentials])
  [window addSubview:[tabControlle view]];
else
  [window addSubview:[loginController view]];

LoginViewController执行登录并通知应用程序委托:

- (void) loginComplete
{
  // XXX animation?
  // XXX view(Will/Did)(Appear/Dosappear) and all the stuff,
  [[loginContoller view] removeFromSuperview];
  [window addSubview:[tabController view]];
}