Open ludiaz opened 6 years ago
It doesn't seem like something related to Sidebar. Have you tried it with just a normal UIViewController?
Hi! I'm using the examples of https://github.com/jdehlin/Xamarin-Sidebar/tree/master/iOS as base to my code. My RootViewController looks like very much as that you use in yourr examples. Except, that i not use Xamarin.Forms. I'm using Xamarin.IOS. My RootViewController inherits of UIViewController, and your example use a PageRenderer. I don't know if that makes some diference. Maybe. I'm investigating and testing different scenarios to have a solid conclusion.
This logic worked in my case. In AppDelegate class.
In FinishedLaunching() method put this.
if (!VersionTracking.IsFirstLaunchEver) { var tabBarController = new RootViewController(); SetRootViewController(tabBarController, false); } else { UIStoryboard FirstOnboarding = UIStoryboard.FromName("FirstOnboarding", null); var tabBarController = GetViewController(FirstOnboarding, "MainOnBoard"); SetRootViewController(tabBarController, false); }
Now,
//To Set the Root View Controller public void **SetRootViewController**(UIViewController rootViewController, bool animate) { if (animate) { var transitionType = UIViewAnimationOptions.TransitionFlipFromRight; Window = new UIWindow(UIScreen.MainScreen.Bounds); Window.RootViewController = rootViewController; UIView.Transition(Window, 0.5, transitionType, () => Window.RootViewController = rootViewController, null); Window.MakeKeyAndVisible(); } else { Window = new UIWindow(UIScreen.MainScreen.Bounds); Window.RootViewController = rootViewController; Window.MakeKeyAndVisible(); } }
public UIViewController **GetViewController**(UIStoryboard storyboard, string viewControllerName) { return storyboard.InstantiateViewController(viewControllerName); }
Hello,
Here is my code:
AppDelegate.cs
RootViewController.cs
My Login screen is a UIViewController. NavController is a class that inherits from UINavigationController. The fundamental is: if user is not authenticated, so, i show the login page. When the user enter the correct credentials, i call the event 'OnLoginSuccess', that is signed in AppDelegate. So, i change the isAuthenticated var to true and set my RootViewController class as Window.RootViewController and call Windows.MakeKeyAndVisible();
When i testing this code at emulator, works fine (iphone 5s, iphone 6s+, ipad pro 9.7). But, in a real device (iphone 6 and iphone 6s) only appears a Black Screen after the login.
All real devices are using iOS 11.1 and 11.0.3.
I'm little bit frustrated.
Thanks for the help!