Swift: Accessing a view controller’s methods
Recently in a Swift project I was using NSNotificationCenter in a bunch of places so that my custom UIView classes could end up calling methods in the ViewController class. After a while I started getting notification bloat and it became a little confusing managing all the posting and listening. It was a bit of a mess for my tightly-coupled views and view controller.
So this is how I can call methods and stuff in my ViewController from my custom UIViews.
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate parentViewController = appDelegate.window!.rootViewController as! ViewController parentViewController.testMethod()
It’s a LOT easier to do this than setting up all those notification and observers. I think you’ll agree (unless you have very loosely coupled logic) that this is a nice solution and it works for Swift. I wasn’t sure how to set it up outside of how I approached it in Objective-C.