【问题标题】:Calling a function of the current UIViewController when using SWRevealViewController使用 SWRevealViewController 时调用当前 UIViewController 的函数
【发布时间】:2016-06-13 04:53:08
【问题描述】:

我有一个用 swift 编写的应用程序,可以在不同的视图上显示位置信息。我在AppDelegate 中接收位置更新(我不想使用单例类,因为即使应用程序在后台,我也想要位置更新)。

现在,我正在使用SWRevealViewController 来实现侧边栏菜单以在不同视图之间切换。当接收到新的位置更新时,如何调用当前处于活动状态的 viewController 的函数来更新 UI?

我搜索了很多,所有讨论如何找到当前UIViewController 的解决方案实际上将SWRevealViewController 作为当前UIViewController 返回,这没有帮助。

【问题讨论】:

  • 显示代码会有帮助

标签: swift cllocation swrevealviewcontroller


【解决方案1】:

我又试了一次,并且能够从另一个视图控制器在我的应用程序中找到我的视图控制器。但是,我无法获得我的子视图控制器应用程序委托。

期待其他答案...

这就是我所做的:

    let app = UIApplication.sharedApplication().delegate! as! AppDelegate
    if let nav = app.window?.rootViewController?.childViewControllers {
        nav.forEach { vc in
            if let viewControllers = vc as? UINavigationController {
                viewControllers.childViewControllers.forEach { vc in
                    if let x = vc as? ViewController {
                        print("Got it \(x)")
                    }
                }
            }
        }
    }

【讨论】:

    猜你喜欢
    • 2015-04-16
    • 2016-03-27
    • 1970-01-01
    • 2016-09-02
    • 2014-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-13
    相关资源
    最近更新 更多