【问题标题】:Iphone SDK - Communicating between objectsIphone SDK - 对象之间的通信
【发布时间】:2010-07-27 10:52:00
【问题描述】:

在下面的应用程序中,您可以看到我当前的应用程序启动位置,并根据用户是否登录,添加不同的 uiviewcontroller 作为主应用程序的子视图 [window addSubview:[loggedOutController view]]; 我的问题是在-View1(登录屏幕)内,一旦用户尝试登录并且成功,我怎样才能回到根级别MainApplication,而不是现在加载LoggedOut UIVIewcontroller,而是加载LoggedIn UIViewController?我不清楚如何进行交流。

主要应用 - UIViewController(注销) -UINavController -View1(登录屏幕) -View1a(注册屏幕) - UIViewController(登录) -UITabBarController -View1(设置) -UINavController(处理编辑配置文件设置) - 查看 1 -查看 1a -查看 1b -查看 1c -View2

【问题讨论】:

  • 我刚刚发现 NSNotificationCenter 似乎可以使用,感谢您的帮助!

标签: iphone


【解决方案1】:

我确信有很多方法可以做到这一点。在视图之间传递信息的一种方法是设置委托对象。例如,在 LoginScreen 中创建一个 MainViewController 委托对象,登录成功后,您可以调用[delegate onSuccessfulLogin],这将弹出视图堆栈并运行 LoggedIn 视图控制器。

【讨论】:

  • 谢谢 B_ 这是否意味着我需要将 UIViewController 下面的每个对象设置为下一个对象的委托,并实现将数据一次一个对象传递回 UIViewController 的函数,或者是否有更直接的返回方式到 UIViewController 而不必触摸其间的每个对象?
  • 如果您的结构需要将对象传递到很远的位置,您还可以执行其他操作。您的主视图控制器对象可以是singleton,这基本上意味着您在其类和返回该实例的函数中创建对象的实例。您还可以创建一个静态类,您可以在其中设置您是否已登录等标志,并在适当时检查这些标志。
猜你喜欢
  • 1970-01-01
  • 2019-03-13
  • 1970-01-01
  • 1970-01-01
  • 2013-04-06
  • 2012-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多