我无法在 self.window 上推送带有导航控制器的登录 Viewcontroller

I can't push the loginViewcontroller with navigationController on self.window

我点了一个 pageViewController 作为 rootViewController,如果没有登录,我想在 pageViewController 上面显示一个登录视图。

NLLoginViewController *loginVC = [[NLLoginViewController alloc]init];
UINavigationController *navigation = [[UINavigationController alloc]initWithRootViewController:loginVC];
[self.window addSubview:navigation.view];

你应该做以下事情

self.window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen] bounds]];
NLLoginViewController *loginVC = [[NLLoginViewController alloc]initWithNibName:@"NLLoginViewController" bundle:nil];
PageViewController *pageVC = [[PageViewController alloc]initWithNibName:@"PageViewController" bundle:nil];
UINavigationController *navigation
if(![[NSUserDefaults standardUserDefaults] boolForKey:@"is_SignedIn"]))
  navigation = [[UINavigationController alloc]initWithRootViewController:logindVC];
else
   navigation = [[UINavigationController alloc]initWithRootViewController:pageVC];
self.window.rootViewController = navigation;

之后在登录视图控制器中,您必须设置

[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"is_SignedIn"];

请试试这个

UIStoryboard *   storyboard = [UIStoryboard storyboardWithName:@"yourStorybordname" bundle:nil];

  NLLoginViewController *loginvc= [storyboard instantiateViewControllerWithIdentifier:@"yourviewControllerid"];

            UINavigationController *navController = [[UINavigationController alloc]initWithRootViewController:loginvc];
            self.window.rootViewController = navController;