0

ユーザーが通知を取得してクリックするたびに、その特定のタブに移動する必要があります。たとえば、ユーザーがメッセージを取得して通知を開くと、アプリケーションはメッセージタブに開きますが、メッセージタブに表示されます。 twitter & dmのことを考えてください。 私のプロジェクトでは、非常に似たようなものを実装しようとしています。 appdelegateとnotificationReceived(プッシュ通知用OneSignal)では、私はこれでそうしようとしました:通知がクリックされたときにタブバーを変更する

let sb: UIStoryboard = UIStoryboard(name: "Main", bundle: nil) 
      let messageNavigationController: UINavigationController = sb.instantiateViewController(withIdentifier: "MessagesNav") as! UINavigationController 
      self.window = UIWindow(frame: UIScreen.main.bounds) 
      self.window?.rootViewController = messageNavigationController 
      self.window?.makeKeyAndVisible() 

しかし、何も起こりません。ユーザーが通知を受け取るたびに、アプリはメインタブ(タブ0)を開くだけです。何が間違っているのですか?

答えて

1

私はnotificationReceivedの意味を理解していません。それはUIApplicationDelegateの定義済み関数ではありません。 OneSignalでプッシュ通知が発生したときに別のページを開く場合は、おそらくhandleNotificationActionの処理機能をOneSignal.initWithLaunchOptionsに渡す必要があります。

タブコントローラーのタブの変更についても言及していますが、貼り付けたコードはルートビューをUINavigationControllerに設定しています。実際にタブを変更したい場合は、タブコントローラーへの参照を取得し、それに正しいselectedIndexを設定する必要があります。

+0

あなたの答えをありがとう。私はそれをハンドル通知アクションとカスタムタブバーコントローラクラスに移すことでそれを理解しました。 – Vandal

関連する問題