多层导航栏下的登陆注销架构

多层导航栏下的登陆注销架构

1.APPDelegate创建一个Nav,作为主Nav:

//.h

@property (strong, nonatomic) LoginController *login_ctr;

@property (strong, nonatomic) UINavigationController *login_nav;

//.m

self.login_ctr = [[LoginController alloc] init];

self.login_nav = [[UINavigationController alloc] initWithRootViewController:self.login_ctr];

self.window.rootViewController = self.login_nav;

2.Login界面创建tab控制器,并添加各个子Nav:

HomeController *home_ctr = [[HomeController alloc] init];

home_ctr.title = @"首页";

UINavigationController *home_nav = [[UINavigationController alloc] initWithRootViewController:home_ctr];

DeviceController *device_ctr = [[DeviceController alloc] init];

device_ctr.title = @"设备列表";

UINavigationController *device_nav = [[UINavigationController alloc] initWithRootViewController:device_ctr];

 

UITabBarController *rootTabbarCtr  = [[UITabBarController alloc] init];

NSArray *nav_views = @[home_nav,device_nav];

[rootTabbarCtr setViewControllers:nav_views];

 

[self.navigationController pushViewController:rootTabbarCtr animated:YES];

 

3.在需要返回最上层Login界面时调用:

AppDelegate *app = (AppDelegate *)[[UIApplication  sharedApplication] delegate];

[app.login_nav popToRootViewControllerAnimated:YES];