使用ViewController实现此场景的最佳方法-iPhone

使用ViewController实现此场景的最佳方法-iPhone,iphone,objective-c,cocoa,sdk,Iphone,Objective C,Cocoa,Sdk,我正在编写一个应用程序,允许iPhone用户登录他们的帐户。登录后,用户可以通过Web服务获取信息、更改密码、更改其他类型的数据。我是iPhone编程新手,我对处理这个问题的viewController设置有点困惑。我想做的是:; 1如果用户未登录-显示占据整个屏幕的视图,显示我的登录/密码文本字段等。我将设置一些条件,检查用户是否在plist中保存了u/p 2如果用户已登录或一旦用户登录,请删除当前的全尺寸视图并加载选项卡视图。如果用户注销,则将加载主登录视图 我将需要两个ViewContro

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

2如果用户已登录或一旦用户登录,请删除当前的全尺寸视图并加载选项卡视图。如果用户注销,则将加载主登录视图

我将需要两个ViewController用于此特定场景?我读了很多关于视图控制器的书。阅读了所有的苹果文档,但我仍然感到困惑,因为有太多的选项/方法可供使用

像往常一样,我提前向你表示感谢


T

以下是我将如何做到这一点:

选项卡栏控制器是主视图控制器。首先在主NIB文件中对其进行初始化,然后将其添加到应用程序代理的窗口中

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

当用户登录时,您将关闭模式视图控制器,并且您的选项卡栏UI将可见


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

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

创建LoginViewController和UITabBarViewController。应用程序委托将在启动时检查它是否已经具有用户凭据,并显示相应的控制器

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]];
}

谢谢你的建议,我想我会同意奥立和尤拉斯的建议。非常感谢您的指导这就是为什么这个网站是如此伟大!我撞到了这堵巨大的砖墙。我已经设置了两个控制器。我的主视图控制器是一个tabBarController,在用户成功登录和我的loginViewController后,应该可以查看它。如果未登录,则加载我的loginView,即loginView.xib/.h/.m。我创建一个登录btnaction来模拟登录以加载tabBarController。这个很好用。然后,我在选项卡栏视图中有一个注销按钮,模拟注销以返回loginView。我已经设置了我的方法,但由于未知的选择器,我一直得到一个异常,但我的方法存在。只是miffedI在这件事上浪费了几天时间。我已经到了一个地步,我会付钱请一个家教,只是为了让我越过这个障碍。在我继续之前,我想确定我的布局是正确的。有人要吗?