【问题标题】:CustomObject access自定义对象访问
【发布时间】:2019-03-02 12:29:50
【问题描述】:

这是一个根视图控制器。是否可以从 appDelegate 类访问该变量?

我的意思是在 AppDelegate 内部: self.window.rootViewController.somethingToDo()

问题是我使用@IBOutlet 附加此对象,看来此变量将在viewDidLoad() 状态下初始化。这是一个为时已晚的状态。

还有其他方法可以访问吗?

【问题讨论】:

  • 您是否尝试从另一个视图控制器访问 rootViewController?
  • 来自 appdelegate 的@Socram
  • 您的问题是对象“Application Initializer”(我想是您的应用程序委托)仅在 viewDidLoad() 上初始化(因为它是一个 IBOutlet)并且您想更早地访问它。对吗?
  • @Socram 是的,我只是想知道在 iboutlet 之外的某个地方是否有可用的信息

标签: ios storyboard viewcontroller appdelegate


【解决方案1】:

是的,您可以按照您的说明从 appDelegate 访问 rootViewController。

如果您想在 viewDidLoad() 之前访问 appDelegate,您始终可以覆盖 UIViewController 的标准 init() 方法之一并访问 appDelegate,建议使用以下问题:

How do I get a reference to the app delegate in Swift?

例如,如果您正在从情节提要中初始化 UIViewController,则可以在自定义 UIViewController 类中覆盖 init?(coder aDecoder: NSCoder):

required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)

    // get the appDelegate here and do your magic
}

希望这会有所帮助。

【讨论】:

  • 我说的是使用 rootViewController 访问故事板的自定义对象
猜你喜欢
  • 1970-01-01
  • 2016-07-03
  • 1970-01-01
  • 2016-02-11
  • 2012-06-07
  • 2011-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多