OC UINavigationController使用

版权声明:本文为博主原创文章,转载请标明地址。 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];

猜你喜欢

转载自blog.csdn.net/u013034413/article/details/79363098