UITabBarController block

1. 标签视图控制器(UITabBarController):

UITabBar:

1>  是UITabBarController中下方的工具条 高度49 上面有控制每个子视图控制器的按钮:UITabBarButton 按钮上面的文字及图片由UITabBarController对应子视图控制器的UITabBarItem来设置

2>  属性:tintColor barTintColor....

UITabBarItem:

1>  属性:title image badgeValue(图标上方的提示)

UIAppearance:

[[UINavigationBar appearance]setBarTintColor:[UIColor cyanColor]];

这个将所有的导航栏的颜色都改了

这个网址讲了UIAppearance:

http://blog.sina.com.cn/s/blog_9693f61a0101f1rs.html


tabBarItem.title :控制下方图标的显示文字(控制器中tabBarItem的title:图标下方的文字)


// 红色页面
    RedViewController *redVC = [[RedViewController alloc] init];
    UINavigationController *naVC = [[UINavigationController alloc] initWithRootViewController:redVC];
    naVC.tabBarItem.image = [UIImage imageNamed:@"22-skull-n-crossbones"];
    naVC.tabBarItem.title = @"治疗";
    naVC.tabBarItem.badgeValue = @"99+";

ITabBarController *tabBarVC = [[UITabBarController alloc] init];
    
    // 设置代理   要先遵循协议:UITabBarControllerDelegate
    tabBarVC.delegate = self;
    // 数组元素添加的顺序  决定下面小图标(及控制器界面)显示的顺序
    tabBarVC.viewControllers = @[naVC2,naVC,naVC3,naVC4,naVC5,naVC6];
    
// 要把window的rootViewController设置为tabBarVC   
    self.window.rootViewController = tabBarVC;



tabBar上最多显示5个图标,当超过5个的时候,显示四个,最后一个是more,more里面是剩下没有显示出来的图标,以表格的形式放置


控制控制器上方导航栏的文字:

和tabBarItem.title不是一个属性

    self.navigationItem.title = @"红色视图";

2. Block:

block传值的步骤:

1>  先在第二个控制器里重定义一个block

2>  声明一个方法  参数类型为block

3>  设置一个属性为block

4>  实现第二步声明的方法

5>  调用之前的写的block  传值

6> 弱指针指向  接收值

第一步:

typedef void(^SendMessageBlock) (NSString *str);

第二步:

- (void)sendMesssage:(SendMessageBlock)block;

第三步:

@property (nonatomic,copy) SendMessageBlock block;

第四步:

- (void)sendMesssage:(SendMessageBlock)block {
    self.block = block;

}

第五步:

self.block(self.textField2.text);
    [self.navigationController popToRootViewControllerAnimated:YES];

第六步:

// 弱指针指向
    __weak ViewController *weakSelf = self;
    
    // block传值第六步
    [secondVC sendMesssage:^(NSString *str) {
        weakSelf.textField1.text = str;
    }];

定义block属性 用copy修饰

在block实现部分:不能直接使用实例变量 self调用属性 因为self的引用计数会+1 然后造成循环引用

可以使用弱指针指向

- (void)tapAction:(UITapGestureRecognizer *)sender {
    SecondViewController *secondVC = [[SecondViewController alloc] init];
    [self.navigationController pushViewController:secondVC animated:YES];
    // 弱指针指向
    __weak ViewController *weakSelf = self;
    
    // block传值第六步
    [secondVC sendMesssage:^(NSString *str) {
        weakSelf.textField1.text = str;
    }];
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值