【问题标题】:Best way to accomplish this scenario with viewControllers - iPhone使用 viewControllers 完成此场景的最佳方法 - iPhone
【发布时间】:2010-11-03 18:42:06
【问题描述】:

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

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

我需要两个视图控制器来处理这个特定的场景吗?我已经阅读了很多关于视图控制器的内容。阅读所有 Apple 文档,但我仍然感到困惑,因为要使用的选项/方法太多了。

和往常一样,我提前谢谢你。

T

【问题讨论】:

    标签: iphone objective-c cocoa sdk


    【解决方案1】:

    只是众多可能选项之一:

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

    【讨论】:

    • 感谢您的建议,我想我会接受 Ole 和 Yuras 的建议。非常感谢这个方向。 :) 这就是这个网站如此出色的原因!
    • 我撞到了这堵巨大的砖墙。我有我的两个控制器设置。我的主视图控制器是 tabBarController(在用户成功登录后应该可以查看)和我的 loginViewController。如果没有登录,那么我加载我的 loginView,即 loginView.xib/.h/.m 我创建一个(登录 btn)操作来模拟登录以加载 tabBarController。这很好用。然后我的 tabBar 视图中有一个注销按钮来模拟注销以返回 loginView。我有我的方法设置,但由于未知的选择器而不断收到异常,但我的方法存在。只是生气
    • 我已经为此烧了几天了。我已经到了我会花钱请家教的地步,只是为了让我越过这个障碍。在我继续之前,我想确保我的布局是正确的。有接受者吗?
    【解决方案2】:

    我会这样做:

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

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2023-03-23
        • 1970-01-01
        • 2013-10-19
        • 1970-01-01
        • 2022-01-08
        • 2012-06-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多