UITabBarController详解(二)UITabBarController的代理方法以及模态显示

最后更新于:2022-04-01 06:58:49

@首先要实现协议 ~~~ //设置代理 tabBarController.delegate =self; //UINavigationController nav tabBarController.moreNavigationController; //[nav setNavigationBarHidden:YES animated:YES]; //控制哪些ViewController的标签栏能被点击 -(BOOL)tabBarController:(UITabBarController)tabBarControllershouldSelectViewController:(UIViewController)viewController{ //代表HMT_CViewController这个View无法显示,无法点击到它代表的标签栏 if([viewControllerisKindOfClass:[HMT_CViewControllerclass]]) { returnNO; } returnYES; } // 选中哪个标签栏,一个监控作用吧 (void)tabBarController:(UITabBarController *)tabBarControllerdidS electViewController:(UIViewController*)viewController{ } // More view controller将要开始编辑 (void)tabBarController:(UITabBarController)tabBarControllerwillBe ginCustomizingViewControllers:(NSArray)viewControllers{ } // More view controller将要结束编辑 (void)tabBarController:(UITabBarController)tabBarControllerwillEn dCustomizingViewControllers:(NSArray)viewControllers changed:(BOOL)changed{ } // More view controller编辑 (void)tabBarController:(UITabBarController)tabBarControllerdidEnd CustomizingViewControllers:(NSArray)viewControllers changed:(BOOL)changed{ } #import "HMT-AViewController.h" #import "HMTModalShowViewController.h" @interfaceHMT_AViewController () @end @implementation HMT_AViewController (void)viewDidLoad { [superviewDidLoad]; self.view.backgroundColor = [UIColorredColor]; //创建一个按钮 UIButton button = [UIButton buttonWithType:UIButtonTypeDetailDisclosure]; button.frame =CGRectMake(100,100,100, 100); [button addTarget:self action:@selector(modalShow)forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:button]; // Do any additional setup after loading the view. } (void)modalShow{ HMTModalShowViewController modalShowVC = [[HMTModalShowViewController alloc]init]; //模态视图控制器呈现出来时候的视觉效果 modalShowVC.modalTransitionStyle =UIModalTransitionStyleCrossDissolve; /* UIModalTransitionStyleCoverVertical = 0, //默认,由下往上 UIModalTransitionStyleFlipHorizontal,//水平转动效果 UIModalTransitionStyleCrossDissolve,//渐变效果 UIModalTransitionStylePartialCurl,//书页往上翻动效果 */ //模态视图控制器呈现方式,默认全屏 modalShowVC.modalPresentationStyle =UIModalPresentationFullScreen; /* UIModalPresentationFullScreen = 0, UIModalPresentationPageSheet, UIModalPresentationFormSheet, UIModalPresentationCurrentContext, UIModalPresentationCustom, UIModalPresentationNone = -1, */ UINavigationController * modalShowNC = [[UINavigationController alloc] initWithRootViewController:modalShowVC]; //推出模态视图控制器 [self presentViewController:modalShowNC animated:YES completion:^{ NSLog(@"hello world"); }]; } #import "HMTModalShowViewController.h" @interfaceHMTModalShowViewController () @end @implementation HMTModalShowViewController (void)viewDidLoad { [superviewDidLoad]; // Do any additional setup after loading the view. self.view.backgroundColor = [UIColor yellowColor]; //利用UINavigationController来实现退出控制器 UIBarButtonItem * barButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(modalDismiss)]; self.navigationItem.leftBarButtonItem = barButton; self.navigationItem.title =@"humingtao"; //创建一个按钮来实现退出控制器 /*UIButton button = [UIButton buttonWithType:UIButtonTypeDetailDisclosure]; button.frame = CGRectMake(100, 100, 100, 100); [button addTarget:self action:@selector(modalDismiss) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:button]; */ } (void)modalDismiss{ //退出模态视图控制器 [self dismissViewControllerAnimated:YES completion:^{  NSLog(@"退出GoodBye"); }]; } @end ~~~
';