分栏控制器和导航栏目tabBarItem,UINavigationController

本文详细介绍了一个iOS应用中自定义TabBar的过程,包括样式设置、不同页面的配置及使用UINavigationController进行页面导航的方法。此外,还展示了如何通过代理方法实现TabBar控制器的选择逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//
//  AppDelegate.m
//  TabBarControllerDemo
//
//  Created by qianfeng on 15/9/22.
//  Copyright (c) 2015年 qianfeng. All rights reserved.
//

#import "AppDelegate.h"
#import "ViewController1.h"
#import "ViewController2.h"
#import "ViewController3.h"
#import "ViewController4.h"
#import "ViewController5.h"
#import "ViewController6.h"
#import "ViewController7.h"

@interface AppDelegate ()

@end

@implementation AppDelegate

#pragma mark    ------------------------创建customTabBar
- (void)customTabBar
{
    //取出分栏控制器
    UITabBarController *vc = (id)self.window.rootViewController;
    
    //bar样式
    vc.tabBar.barStyle = UIBarStyleBlack;
    
    //半透明度
    vc.tabBar.translucent = NO;
    
    //tint color是设置你选中的那个tabBar的颜色,默认是蓝色
    vc.tabBar.tintColor = [UIColor greenColor];
    
    //bar tint color
    vc.tabBar.barTintColor = [UIColor whiteColor];
    
}

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    #pragma mark    ------------------------VC1
    
    ViewController1 *vc1 = [[ViewController1 alloc] init];
    
    vc1.title = @"微信";
    
    //vc1.view.backgroundColor = [UIColor whiteColor];
    
    vc1.tabBarItem = [[UITabBarItem alloc]initWithTabBarSystemItem:UITabBarSystemItemDownloads tag:1];
    
    vc1.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"home" image:[UIImage imageNamed:@"tabbar_mainframeHL@2x"] tag:2];
    
    //创建导航控制器
    UINavigationController *nvc1 = [[UINavigationController alloc]initWithRootViewController:vc1];

    nvc1.navigationBar.barStyle = UIBarStyleBlack;
    
    //nvc1.navigationBar.barTintColor = [UIColor redColor];
    
    nvc1.navigationBar.tintColor = [UIColor yellowColor];//字体颜色
    
   //nvc1.navigationBar.translucent = NO;
    
    #pragma mark    ------------------------VC2
    
    ViewController2 *vc2 = [[ViewController2 alloc] init];
    
    vc2.title = @"通讯录";
    
    vc2.view.backgroundColor = [UIColor whiteColor];
    
    vc2.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"通讯录" image:[UIImage imageNamed:@"tabbar_contactsHL@2x"] tag:2];
    
    //创建导航控制器
    UINavigationController *nvc2 = [[UINavigationController alloc]initWithRootViewController:vc2];
    
    nvc2.navigationBar.tintColor = [UIColor whiteColor];
    
    nvc2.navigationBar.barStyle = UIBarStyleBlack;//背景是黑色
    
    #pragma mark    ------------------------VC3
    
    ViewController3 *vc3 = [[ViewController3 alloc] init];
    
    vc3.title = @"发现";
    
    vc3.view.backgroundColor = [UIColor whiteColor];
    
    vc3.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"发现" image:[UIImage imageNamed:@"tabbar_discover@2x"] selectedImage:[UIImage imageNamed:@"tabbar_discoverHL@2x"]];
    
    vc3.tabBarItem.tag = 3;
    
    
    //创建导航控制器
    UINavigationController *nvc = [[UINavigationController alloc]initWithRootViewController:vc3];
    
    nvc.navigationBar.barStyle = UIBarStyleBlack;//背景是黑色
    
    #pragma mark    ------------------------VC4
    
    ViewController4 *vc4 = [[ViewController4 alloc] init];
    
    vc4.title = @"我";
    
    vc4.view.backgroundColor = [UIColor whiteColor];
    
    vc4.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"我" image:[UIImage imageNamed:@"tabbar_me@2x"] tag:4];
    
    //创建导航控制器
    UINavigationController *nvc4 = [[UINavigationController alloc]initWithRootViewController:vc4];
    
    nvc4.navigationBar.barStyle = UIBarStyleBlack;//背景是黑色
    
    #pragma mark    ------------------------VC5
    
    ViewController5 *vc5 = [[ViewController5 alloc] init];
    
    vc5.title = @"页五";
    
    vc5.view.backgroundColor = [UIColor cyanColor];
    
    vc5.tabBarItem = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemFavorites tag:5];
    
    #pragma mark    ------------------------VC6
    
    ViewController6 *vc6 = [[ViewController6 alloc] init];
    
    vc6.title = @"页六";
    
    vc6.view.backgroundColor = [UIColor orangeColor];
    
    vc6.tabBarItem = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemTopRated tag:6];
    
    #pragma mark    ------------------------VC7
    
    ViewController7 *vc7 = [[ViewController7 alloc]init];
    
    vc7.title = @"页七";
    
    vc7.view.backgroundColor = [UIColor blueColor];
    vc7.tabBarItem = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemRecents tag:7];
    
    #pragma mark    ------------------------创建分栏目控制器等
    
    //分栏控制器 最多能显示五个
    UITabBarController *tvc = [[UITabBarController alloc]init];
    
    tvc.viewControllers = @[nvc1,nvc2,nvc,nvc4];//,vc5,vc6,vc7
    
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds] ];
    
    self.window.backgroundColor = [UIColor whiteColor];
    
    
    self.window.rootViewController = tvc;
    
    [self customTabBar];         //创建分栏控制器
    
    //设定代理
    tvc.delegate = self;
    
    //设置选择控制器
    tvc.selectedIndex = 0;
    
//    NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
//    
//    NSString * value = [ud objectForKey:@"title"];
//    
//    for (UIViewController *vc in tvc.viewControllers) {
//        if ([vc.title isEqualToString:value]) {
//            tvc.selectedViewController = vc;
//        }
//    }
    
    //NSLog(@"%@",NSHomeDirectory());
    
    [self.window makeKeyAndVisible];
    
    
    return YES;
}



#pragma mark    ------------------------ 实现分栏控制器代理方法
- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewControll{
    
    //是否可以选择这个控制器,yes 允许选择,no 不允许
//    if (viewControll.tabBarItem.tag == 2) {
//        return NO;
//    }
//    
    return YES;
    
}

- (void)tabBarController:(UITabBarController *)tabBarController willBeginCustomizingViewControllers:(NSArray *)viewControllers
{
    //将要开始编辑的时候,会调用这个方法
    for (UIViewController *vc in viewControllers) {
        
        NSLog(@"tag = %ld",vc.tabBarItem.tag);
        
    }
    
}

- (void)tabBarController:(UITabBarController *)tabBarController willEndCustomizingViewControllers:(NSArray *)viewControllers changed:(BOOL)changed
{
    //编辑结束的时候会调用这个方法
    for (UIViewController *vc in viewControllers) {
        
        NSLog(@"changed tag = %ld",vc.tabBarItem.tag);
        
    }
}

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
    //选择视图控制器之后,调用这个方法
    NSLog(@"vc tag = %ld",viewController.tabBarItem.tag);
    
    //是一个单例
    NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
    
    [ud setObject:viewController.title forKey:@"title"];
    
    //写入文件
    [ud synchronize];
}


@end

 

 

 

转载于:https://www.cnblogs.com/wanghengheng/p/4839574.html

内容概要:该论文聚焦于T2WI核磁共振图像超分辨率问题,提出了一种利用T1WI模态作为辅助信息的跨模态解决方案。其主要贡献包括:提出基于高频信息约束的网络框架,通过主干特征提取分支高频结构先验建模分支结合Transformer模块注意力机制有效重建高频细节;设计渐进式特征匹配融合框架,采用多阶段相似特征匹配算法提高匹配鲁棒性;引入模型量化技术降低推理资源需求。实验结果表明,该方法不仅提高了超分辨率性能,还保持了图像质量。 适合人群:从事医学图像处理、计算机视觉领域的研究人员工程师,尤其是对核磁共振图像超分辨率感兴趣的学者技术开发者。 使用场景及目标:①适用于需要提升T2WI核磁共振图像分辨率的应用场景;②目标是通过跨模态信息融合提高图像质量,解决传统单模态方法难以克服的高频细节丢失问题;③为临床诊断提供更高质量的影像资料,帮助医生更准确地识别病灶。 其他说明:论文不仅提供了详细的网络架构设计与实现代码,还深入探讨了跨模态噪声的本质、高频信息约束的实现方式以及渐进式特征匹配的具体过程。此外,作者还对模型进行了量化处理,使得该方法可以在资源受限环境下高效运行。阅读时应重点关注论文中提到的技术创新点及其背后的原理,理解如何通过跨模态信息融合提升图像重建效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值