推送视图控制器后导航控制器隐藏



我正在开发一个应用程序,我遇到了UINavigationcontroller问题。

首先在应用程序委托中,我检查用户是否已登录,如果是,我将他带到主屏幕,如果没有我将他带到登录屏幕。

这是我的代码:

    UINavigationController *diabetesNavigationController = [UINavigationController alloc];
LoginViewController *loginPage = [[LoginViewController alloc]initWithNibName:@"LoginViewController" bundle:nil];
MainViewController *mainPage = [[MainViewController alloc]initWithNibName:@"MainViewController" bundle:nil];

if ([DataStore instance].userIsLoggedIn)
    diabetesNavigationController = [diabetesNavigationController initWithRootViewController:mainPage];
else
    diabetesNavigationController = [diabetesNavigationController initWithRootViewController:loginPage];

NSDictionary *navbarTitleTextAttributes = [NSDictionary dictionaryWithObject:[UIColor whiteColor] forKey:NSForegroundColorAttributeName];
[[UINavigationBar appearance]setBarTintColor:[UIColor orangeColor]];
[[UINavigationBar appearance]setTintColor:[UIColor whiteColor]];
[[UINavigationBar appearance]setTitleTextAttributes:navbarTitleTextAttributes];
[self.window setRootViewController:diabetesNavigationController];

当用户注销时出现问题,他会返回登录屏幕,但没有navigationcontroller

我在MainViewController中做了一些东西,它是这样的:

-(void)viewDidAppear:(BOOL)animated
{
    self.navigationItem.title = @"Diabetes";
    UIBarButtonItem *settingButton=[[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"burger.png"]
                                                               style:UIBarButtonItemStylePlain
                                                              target:self
                                                              action:@selector(onBurger:)];
    self.navigationItem.rightBarButtonItem = settingButton;
    self.navigationItem.leftBarButtonItem.enabled = YES;
}

因此,当我使用以下代码注销用户时:

LoginViewController *loginPage = [[LoginViewController alloc]initWithNibName:@"LoginViewController" bundle:nil];
    [self.navigationController setViewControllers:[NSArray arrayWithObjects:loginPage, nil] animated:YES];

我进入登录屏幕但没有Navigationcontroller.我尝试在所有视图委托中将隐藏属性设置为 NO,但它仍然存在此问题。

你可以试试这个:

UIWindow *window = [UIApplication sharedApplication].keyWindow;
LoginViewController * loginPage = [[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController: loginPage];
[window.rootViewController presentViewController:nav animated:YES completion:NULL];

让我知道它是否有效.. :)

相关内容

最新更新