0

Ich habe ein Projekt, in dem meine VCs in MMDrawerController eingebettet sind. Problem Ich habe Push-Benachrichtigungen in meinem Appdelegate erhalten, aber ich weiß nicht, wie ich diesen bestimmten Bildschirm öffnen kann, für den ich die Benachrichtigung erhalten habe. VC als centerVC wird nicht funktionieren. Es ist in meinem Fall nicht nützlich, weil einige Bildschirme Rücktaste haben. Ich habe auchWie öffne ich einen bestimmten Bildschirm für eine Remote-Benachrichtigung, wenn ich mmdrawerController verwenden

[_drawerController.centerViewController.navigationController pushViewController:pushedVC animated :true] 

verwendet Aber ihre nutzlosen Es hat keine Auswirkungen auf die Bildschirme. Jede Hilfe wird im Voraus geschätzt.

Hier ist mein Code, die ich in AppDelegate bin mit

-(void)GotoChatVCNotification{ 
UIColor *navBarColor = [UIColor colorWithRed:52.0/255.0 green:56.0/255.0 blue:52.0/255.0 alpha:1.0]; 
[[UINavigationBar appearance] setBarTintColor:navBarColor]; 
NSDictionary *titleDict = [NSDictionary dictionaryWithObjectsAndKeys:[UIColor whiteColor],NSForegroundColorAttributeName, nil]; 
[[UINavigationBar appearance] setTitleTextAttributes:titleDict]; 
UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"Main" bundle: nil]; 

ChatVC *centerViewController = [storyBoard instantiateViewControllerWithIdentifier:@"ChatVC"]; 
centerViewController.User_id = [APPDELEGATE.userDetailsDic objectForKey:@"user_id"]; 
_otherUserID=[self.dicPushData valueForKey:@"sender_id"]; 
centerViewController.Reciever_id = [self.dicPushData valueForKey:@"sender_id"]; 
[email protected]"notification"; 
centerViewController.strFriendId = [self.dicPushData valueForKey:@"sender_id"]; 
centerViewController.strProjectId = [self.dicPushData valueForKey:@"project_id"]; 
centerViewController.strChatUserName = [self.dicPushData valueForKey:@"full_name"]; 
centerViewController.strSupportChat = @"Chat"; 

[[APPDELEGATE.sideController.centerViewController navigationController] popToRootViewControllerAnimated:false]; 

[[APPDELEGATE.sideController.centerViewController navigationController] pushViewController:centerViewController animated:false]; 

zu ChatVC gehen // Ich habe dies auch unterhalb der Linie verwendet, mit denen ich bin auf diesem Bildschirm umgeleitet werden können, aber die Fictionalität meines MMDrawerControllers fehlt dort. // [[self topMostController] presentViewController: centerViewController animiert: NO Abschluss: Null];}

Antwort

0

Sie können es auf folgende Weise versuchen.

Wenn Sie an einem anderen Bildschirm sind die oben auf MMDrawerController'scenterViewController gedrückt wurde, dann können Sie Folgendes versuchen:

// Assuming you have access to _drawerController 

// The below line is to remove any UIViewController on top of center 

[[_drawerController.centerViewController navigationController] popToRootViewControllerAnimated:false]; 

// _screenToBeRedirectedTo is the UIViewController you want to be redirected to 

[[_drawerController.centerViewController navigationController] pushViewController:_screenToBeRedirectedTo animated:false]; 

Der obige Code ist unter der Annahme, dass Sie keine weiteren Informationen zu auf dem Bildschirm _screenToBeRedirectedTo

bearbeiten

Wenn Sie die Einschränkungen, die Sie haben angeben können umgeleitet, kann ich mehr detaile geben Ich antworte. Fühlen Sie sich frei zu kommentieren, wenn Sie irgendwelche Zweifel haben :)

+0

danke! für schnelle Antwort, aber es funktioniert nicht für mich. Es öffnet die View-Controller bis rootVC, aber danach ist es nicht drücken Sie meine _screenToBeRedirectedTo Bildschirm – Amit

+0

@Amit, lassen Sie mich überprüfen – KrishnaCA

+0

@Amit, können Sie mir bitte sagen, wenn Sie diese Zeile verwenden '[_DrawerController.CenterViewController NavigationController] PopToRootViewControllerAnimated: false] 'oder dieses '[_DrawerController.centerViewController navigationController] popToRootViewControllerAnimated: true]' – KrishnaCA

Verwandte Themen