【问题标题】:Pass data to each view controller of swrevealviewcontroller将数据传递给 swrevealviewcontroller 的每个视图控制器
【发布时间】:2016-11-11 05:03:32
【问题描述】:

我有一个登录页面,在我登录后,我希望我的程序将一个变量传递给一组由 SWRevealViewController 连接的视图控制器。但我不知道该怎么做。

这是我用来将变量“用户名”传递给 SWRevealViewController 指向的第一页的代码

let next = self.storyboard?.instantiateViewControllerWithIdentifier("reveal") as! SWRevealViewController
next.loadView()
let main = next.frontViewController as! mainPage
main.username = username as String
self.presentViewController(next, animated: true, completion: nil)

我通过前视图控制器传递它,因为 mainPage 用 sw_front 标识。但我想将此变量传递给我拥有的 SWRevealViewController 下的所有视图控制器。

此外,我传递这个变量的方式确实有效,但因为我首先调用了“next.loadView()”,所以不会在 mainPage 的 viewLoad 中为该变量赋值。有人知道如何解决这个问题吗?我在想其中一种可能性可能是先将数据传递给后视控制器并传递它,但我不知道如何

【问题讨论】:

  • 没听说过模型?
  • 抱歉,那是什么?
  • 模型-视图-控制器 (MVC) 是一种设计模式,它是最常见、最流行和众所周知的一种。您的问题急需您实现一个模型来在视图控制器之间存储和共享您的数据。
  • 所以你的意思是我创建了一个包含静态变量的类,用于在我登录时存储用户名的值。登录后,我可以从该模型中获取值,因为它是静态的,对吧?
  • 在最基本的层面上,模型可能是这样的。您在下面指出您已经找到了答案,很好。但这并不意味着你仍然不应该考虑拥有一个模型,如果你添加越来越多的视图控制器并且它们都需要这些数据和其他数据,那么你就会明白为什么拥有一个模型是有用的。模型通常不仅仅存储数据,它还提供获取或存储数据等功能。即使您决定现在不需要,也请阅读它们,将来会需要。

标签: ios swift uinavigationcontroller sidebar swrevealviewcontroller


【解决方案1】:

我只是通过将数据传递给我的后视图控制器并通过 prepareSegue() 将它传递给每个子视图控制器来解决这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多