版权声明:本文为博主原创文章,转载请标明地址。 https://blog.csdn.net/u013034413/article/details/79363098
指定进入第一个界面
UINavigationController
- (BOOL)application:(UIApplication )application didFinishLaunchingWithOptions:(NSDictionary )launchOptions {
// Override point for customization after application launch.
// 1.初始化窗体
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// 2.导航控制器的根控制器
UIStoryboard * sb = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
ViewController * vc = [sb instantiateViewControllerWithIdentifier:@"login"];
// 3.窗体的根控制器为导航控制器
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:vc];
// 4.设置窗体根控制器
self.window.rootViewController = nav;
// 5.显示窗体
[self.window makeKeyAndVisible];
return true;
}
UINavigationController简单设置
-(void)viewDidLoad {
[super viewDidLoad];
//设置navigationbar的半透明
[self.navigationController.navigationBar setTranslucent:NO];
//设置navigationbar上显示的标题
self.title = @"登录";
//设置navigationbar上左右按钮字体颜色
[self.navigationController.navigationBar setTintColor:[UIColor whiteColor]];
//添加点击的按钮
UIBarButtonItem * backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"返回" style:UIBarButtonItemStyleDone target:self action:@selector(backBarButtonItem:)];
self.navigationItem.leftBarButtonItem = backBarButtonItem;
}
//返回
- (void)backBarButtonItem:(UIBarButtonItem *)btn{
[self.navigationController popViewControllerAnimated:YES];
}
如果界面切换时需要隐藏navigationbar或者想要修改背景色
-(void)viewWillAppear:(BOOL)animated{
//显示或者隐藏
[self.navigationController setNavigationBarHidden:NO animated:YES];
//修改navigationbar的颜色
[self.navigationController.navigationBar setBarTintColor:[UIColor purpleColor]];
}
关闭当前界面
[self.navigationController popViewControllerAnimated:YES];
直接回到第一个界面
[self.navigationController popToRootViewControllerAnimated:true];
移除某一个界面
循环遍历
NSMutableArray *marr = [[NSMutableArray alloc]initWithArray:self.navigationController.viewControllers];
for (UIViewController *vc in marr) {
if ([vc isKindOfClass:[XXX class]]) {
[marr removeObject:vc];
break;
}
}
self.navigationController.viewControllers = marr;
//也可以直接根据下标移除
[marr removeObjectAtIndex:1];