WatchOS 2.0: WCSessionDelegate not get called (in Simulator)
In general, it is not a good idea to receive WCSession data in a UIViewcontroller, since you never can be sure whether it is there or not.
Apple says you should start receiving as soon as possible. Your UIApplicationDelegate is a good place to receive data from WCSession and a good place to set it up as early as possible.
Edit
You also don't hold a reference to your activated session on the watch side. This means Apple can remove all the session ressources.
So you next call to defaultSession gets you a fresh unactivated session.
Edit 2
In my experience you have to do 2 things when testing the communication between WatchApp Extension and iOS App:
- Start WatchApp from XCode 7 (sometimes I have to do this twice)
- go into the iOS Simulator and start your iOS App manually
There may be more ways to make sure both run and can communicate.
Also try to send a message from iOS App to your WatchApp extension, this works for me.