【发布时间】:2014-01-12 02:18:55
【问题描述】:
我正在开发一个应用程序,但我遇到了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。我尝试在所有视图代理中将 Hidden 属性设置为 NO,但仍然存在此问题。
【问题讨论】:
-
你试过了吗 - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [self.navigationController setNavigationBarHidden:NO animated:animated];{
-
是的,我做了,仍然是同样的问题
-
是的,我做了,仍然没有工作。
标签: ios objective-c uinavigationcontroller hide xcode5