簡體   English   中英

避免在收到推送通知iOS時加載主ViewController

[英]Avoid loading main viewcontroller on receive of push notification ios

我在接收推送通知時使用以下代碼來顯示我的viewcontroller 它工作正常,但先加載主viewcontroller ,然后再加載viewcontroller 因此,每次用戶收到通知時,他們都會看到兩個viewcontrollers controller首先加載主viewcontrollers ,然后再加載通知controller

我如何避免這種情況? 從UI角度來看,加載兩個視圖控制器看起來不太好。

UIViewController *main=[[UIStoryboard storyboardWithName:@"Main" bundle:nil]  instantiateViewControllerWithIdentifier:@"main"];            
UINavigationController *navigationController=[[UINavigationController alloc] initWithRootViewController:main];
self.window.rootViewController =nil;
UIViewController *destCon = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"RelNoti"];
UINavigationController *desNevCont = [[UINavigationController alloc] initWithRootViewController:destCon];                       
self.window.rootViewController = navigationController;
[self.window makeKeyAndVisible];
[self.window.rootViewController  presentViewController:desNevCont animated:YES completion:nil];

在這行中將動畫設置為“否”,

[self.window.rootViewController  presentViewController:desNevCont animated:NO completion:nil];

您可以在檢測到如下所示的推送通知時簡單地更改應用程序的rootViewController,並避免視圖之間的轉換:

UIViewController *destCon = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"RelNoti"];
UINavigationController *desNevCont = [[UINavigationController alloc] initWithRootViewController:destCon];


self.window.rootViewController = desNevCont;
[self.window makeKeyAndVisible];

從下面的代碼中,您似乎正在將mainViewController分配為rootViewController ,然后在其上方顯示notificationViewController ,這就是創建兩個視圖的過渡。 因此,只需將您的代碼限制為上述代碼。

self.window.rootViewController = navigationController; // You are doing it here
[self.window makeKeyAndVisible];
[self.window.rootViewController  presentViewController:desNevCont animated:YES completion:nil]; // presenting here

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM