プッシュ通知時に呼ばれるdidReceiveRemoteNotificationはプッシュ通知時とプッシュ通知からタッチして起動したとき両方とも呼ばれます
違いはapplication.applicationStateの値がactive,Inactive,backgroundかに違いがあります
プッシュ通知からタッチして起動しようとしたときAppDelegate : applicationWillEnterForegroundが呼ばれて、
application.applicationStateがInactiveになるので条件分岐で処理を指定できます
func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject], fetchCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) { if(application.applicationState == UIApplicationState.Inactive){ //通知タップ時の起動処理 }else if (application.applicationState == UIApplicationState.active){ //起動時 }else{ //Background } }