Nazishアリ、
は本当に良いアイデアではありません。
tabbarを持つviewControllerの引数としてuserInfo辞書を受け入れるメソッドを宣言します。
は今、なぜYourViewControllerが唯一の理由ではないとにかくする必要がありますactualViewController
-(void)appStartedFromPushNotification : (NSDictionary *)userInfo {
//now the control has reached yourViewController with tab bar
//change the tab bar selection and perform segue and load the next viewController and use prepareforSgue to pass the data
}
YourViewController.m
-(void)appStartedFromPushNotification : (NSDictionary *)userInfo;
YourViewController.h
、としてそれを呼び出すことができますロードされた???あなたが手動でナビゲーションスタックを混乱させたくない理由です。 YourViewControllerがUINavigationControllerの子であり、UINavigationControllerがrootViewコントローラであるためYourViewControllerが自動的にロードされます。だからそれにアクセスし、自分のナビゲーションスタックが最終的に
Appdelegateで:)安定であり続けるように、タブの変更や負荷viewControllersを実行するために、それを聞いて、
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
NSDictionary *userInfo = [launchOptions valueForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
if (launchOptions) {
[self handleReceiveRemoteNotification: userInfo];
}
return YES;
}
AppDelegate.mやアクセス方法を宣言それにYourViewControllerインスタンスとハンドオーバのデータはすべて、タブバーを使用してビューコントローラは、ジョブ:)ハッピーコーディングを行う必要があります
- (void) handleReceiveRemoteNotification:(NSDictionary *)userInfo{
UINavigationController *rootViewController = (UINavigationController *)self.window.rootViewController;
for(UIViewController *viewController in rootViewController.viewControllers){
if([viewController isKindOfClass:[YourViewController class]]) {
[viewController appStartedFromPushNotification:userInfo];
}
}
です:)
です:) thatsのあなたのrootViewController ??タブバー付きのビューコントローラがロードされているときに、ナビゲーションスタックの状態はどうなりますか?遅延を伴う通知の放棄は私の考えでは悪いアプローチである –
ナビゲーションスタックに1つのコントローラがある。私はsegueを通してもう一つ追加したい。 –
このoneViewControllerはタブバーを持つものですか?したがって、あなたのrootViewControllerはUINavigationControllerで、そのnavigationStackには正しいtabbarを持つyourViewControllerがありますか? –