Swift:App Delegate应该如何获得对View Controller的引用?

时间:2015-02-22 19:33:28

标签: ios xcode swift

我已经开始了一个新的Swift项目,我正在玩各种事情,看看布线是如何与故事板一起工作的,因为我之前从未使用过它们。

该项目是使用Xcode 6.1创建的默认故事板的单视图应用程序。它生成AppDelegate.swift和ViewController.swift类以及Main.storyboard。

是的,我有点偏离本教程:

http://www.raywenderlich.com/74904/swift-tutorial-part-2-simple-ios-app

我使用故事板Interface Builder添加了一个按钮和几个textview控件。

我现在要做的是将应用代表的应用程序didFinishLaunching 事件连接到视图控制器。

func application(application: UIApplication,
     didFinishLaunchingWithOptions launchOptions: 
     [NSObject: AnyObject]?) -> Bool {
}

我发现很多StackOverflow文章正在讨论这个问题,但是这些例子都是在实例化你自己的视图控制器。我想简单地获得对通过故事板启动的视图控制器的引用。

最好的方法是什么?请随意向我指出相应的文档或其他帖子。

1 个答案:

答案 0 :(得分:7)

我终于在checking the current view controller找到了这篇文章,它有我想要的逻辑:

var myViewController : ViewController!
...
if let viewControllers = self.window?.rootViewController?.childViewControllers {
    for viewController in viewControllers {
        if viewController.isKindOfClass(ViewController) {
            myViewController = viewController as ViewController
            println("Found the view controller")
        }
    }
}