Amazon SNSからiOSアプリケーションへプッシュ通知をswift verで送信しています。 3.プッシュ通知が到着すると、アプリケーションはthis SOスレッドごとにデバイスの2番目のタブバー項目に切り替わります。 MyGlobalVariablesはAppDelegate.swiftで更新され、viewcontrollerで読み込まれる構造体です。タブバービューコントロールのテキストラベルを更新
AppDelegate.swift
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) {
if let aps = userInfo["aps"] as? NSDictionary {
if let alert = aps["alert"] as? NSDictionary {
if let title = alert["title"] as? String {
MyGlobalVariables.pushTitle = title
}
if let body = alert["body"] as? String {
MyGlobalVariables.pushBody = body
}
}
}
if self.window!.rootViewController as? UITabBarController != nil {
let tabbarController = self.window!.rootViewController as! UITabBarController
tabbarController.selectedIndex = 1
}
}
はSecondViewController.swiftのテキストがviewWillAppearに更新()であり、すべては正常です。私はテキストラベルを離れて、バック移動することなく更新されることしたいのですが、このタブにいる間、別のタイトルで新しいプッシュ通知が送信されている場合は
override func viewWillAppear(_ animated: Bool) {
pushTitleLabel?.text = MyGlobalVariables.pushTitle
}
。
これをAppDelegate.swiftに追加して、テキストラベルを更新しようとしました。
let sVC = SecondViewController()
if let title = alert["title"] as? String {
MyGlobalVariables.pushTitle = title
sVC.updateLabel(t: title)
}
そしてSecondViewController.swift
func updateLabel(t: String) {
self.pushTitleLabel?.text = t
}
でこの機能を持っている。しかし、私はまだviewWillAppear()は、の世話をするテキストの更新を、持って再び離れタブから、バックナビゲートする必要があります。
ありがとう、作品! :-) Xcodeが追加されましたか? ViewController、すなわち、 viewControllers?[1]。 – kometen