2017-07-13 4 views
0

ローカル通知に応じて2つのViewControllerがポップアップ表示されます。ユーザーが通知の代わりに直接アプリアイコンをタップすると、これらのViewControllerをどのように表示できますか?ユーザーが通知をタップしなくても特定のView Controllerを表示する方法

- (void)applicationDidBecomeActive:(UIApplication *)application 

から

- (void)application:(UIApplication *)application 
didReceiveLocalNotification:(UILocalNotification *)notification 

をコールする方法はありますか?

答えて

0

あなたのアプリケーションデリゲートを参照し、それらのパラメータを与えることで直接そのメソッドを呼び出すことができます(ダミーのUILocalNotificationを作成する必要があります)。

しかし、これは変です。

ビューコントローラを示すコードを、それ自身の機能に適切にセパレートする必要があります。次に、上記で指定したいずれかのメソッドでこの関数を呼び出すことができます。

0

ローカル通知をスケジュールする場合は、ロードするVCを指定するキーをNSUserDefaultsに追加します。

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 

func applicationDidBecomeActive(_ application: UIApplication) { 

チェック中で最後に

UserDefaults.standard.setValue("name_of_vc_to_load", forKey: "vcToLoad") 
UserDefaults.standard.synchronize() 

VCは、利用可能なロードし、それに応じてVCをロードする場合。

if let vcName : String = UserDefaults.standard.value(forKey: "vcToLoad") as? String { 
     switch vcName { 
     case "VCA" : 
      //load VCA 
      break 
     default: 
      //load VCB 
      break 
     } 
    } 

任意のVCをrootVCに表示することも、rootVC自体を置き換えることもできます。

関連する問題