您的位置:首页 > 产品设计 > UI/UE

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

2014-03-15 13:48 393 查看
@首先要实现协议<UITabBarControllerDelegate>

    //
设置代理
    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 *)tabBarControllerdidSelectViewController:(UIViewController *)viewController{

}

// More view controller将要开始编辑
- (void)tabBarController:(UITabBarController *)tabBarControllerwillBeginCustomizingViewControllers:(NSArray
*)viewControllers{

}
// More view controller将要结束编辑
- (void)tabBarController:(UITabBarController *)tabBarControllerwillEndCustomizingViewControllers:(NSArray *)viewControllers
changed:(BOOL)changed{

}
// More view controller编辑
- (void)tabBarController:(UITabBarController *)tabBarControllerdidEndCustomizingViewControllers:(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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  UI UITabBarController
相关文章推荐