Je travaille sur la notification push. Maintenant, quand l'application est montée sur le périphérique et quand je tape dessus. Je veux pousser 3 ViewController à la pile de navigation. Donc, j'utilise le code ci-dessous pour cela.Pousser plus de 3 ViewController dans NavigationController de AppDelegate App crash
AppDelegate.cs code
Window = new UIWindow(UIScreen.MainScreen.Bounds);
Menu = new SlideoutNavigationController();
var storyboard = UIStoryboard.FromName("Main", null);
var webController = storyboard.InstantiateViewController("DashBoardViewController") as DashBoardViewController;
Menu.MainViewController = new MainNavigationController(webController, Menu);
Menu.MenuViewController = new MenuNavigationController(new DummyControllerLeft(), Menu) { NavigationBarHidden = false };
Window.RootViewController = Menu;
Window.MakeKeyAndVisible();
var storyboarddd = UIStoryboard.FromName("Main", null);
var webControllerdd = storyboarddd.InstantiateViewController("DashBoardViewController") as DashBoardViewController;
webControllerdd.reloadNotication();
UINavigationController nav = webController.NavigationController;
var notifyWebController = storyboard.InstantiateViewController("NotificationListViewController") as NotificationListViewController;
notifyWebController.navigationContoller = nav;
nav.PushViewController(notifyWebController, true);
if (type.Equals("Damage Report"))
{
var webController2 = storyboard.InstantiateViewController("DamageReportViewController") as DamageReportViewController;
webController2.DamageReportId = id;
webController2.navigationContoller = nav;
nav.PushViewController(webController2, true);
}
if (type.Equals("Overloss"))
{
var webController2 = storyboard.InstantiateViewController("OverlossViewController") as OverlossViewController;
webController2.PacketId = id;
webController2.navigationContoller = nav;
nav.PushViewController(webController2, true);
}
Le code supérieur fonctionne bien pour ouvrir ViewController spécifique.
Mais mon application plante après le crash.
Crash Report:
2017-07-26 15:25:18.330 Aastha.iOS[6357:2021514] nested push animation can result in corrupted navigation bar
2017-07-26 15:25:18.740 Aastha.iOS[6357:2021514] Finishing up a navigation transition in an unexpected state. Navigation Bar subview tree might get corrupted.
Ma solution:
Quand je recherche sur Google et que quelqu'un dit que l'Open ViewController l'un après l'autre de chaque méthode ViewController ViewDidAppear
mais je ne suis pas sûr Si c'est correct.
Toute aide soit appréciée.
Essayez de pousser tout le contrôleur après un certain retard. Il pourrait ne pas planter l'application. – Nirmalsinh
a publié une réponse mais l'a supprimée (n'a pas remarqué c'est pour xamarin). Cela étant dit ... 'UINavigationController' inclut une méthode pour établir plusieurs contrôleurs en tant qu'enfants (' func setControllers (_ viewControllers: [UIViewController], animé: Bool) '). Je ne sais rien à propos de xamarin mais peut-être que la méthode y est également connectée (?) – Alladinian
Il suffit de vérifier la documentation de Xamarin ... La méthode [existe à coup sûr] (https://developer.xamarin.com/api/member/UIKit.UINavigationController .SetViewControllers/p/UIKit.UIViewController []/System.Boolean /). Donc vous avez besoin de quelque chose comme 'nav.SetViewControllers ([controllers], true)' – Alladinian