UI day 13 Xib可视化编程 storyboard可视化编程

本文详细介绍了XIB可视化编程的概念、作用及使用方法,包括如何通过XIB文件进行控件布局、属性配置和与实体类关联。同时,阐述了Storyboard在视图控制器之间进行页面跳转的功能与实现方式,提供了具体的代码示例。

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

                               Xib可视化编程
1.简单的说,xib就是拖控件编程,也可以说是可视化编程(所见即所得),使用xib编程相对于纯代码可以省下大量的敲代码的时间从而提高了程序的开发速度,Xcode4之后才可以在工程中直接使用xib编程,使用xib编程只是减轻了MVC中V设计的工作量,学好xib有助于了解MVC设计思想
2.IB(interface bulider),以后称之为xib由于xib文件,人能直接识别,所有xib文件会在编译后生成.nib文件(二进制文件)
3.xib文件中,在Xcode的右侧边框中比普通的文件多出四个选项卡  一共六个
第一个选项卡:对当前文件的描述
 
第二个选项卡:辅助选项卡,主要用来查询
 
第三个选项卡:自定义选项卡,可以用来配置和当前xib文件相关联的实体类,如果创建实体类时候,默认勾上also create xib file,此时默认和实体类自动关联
 
第四个选项卡:控件属性选项卡,(优先显示自己的属性,在下面显示它父类的属性)
 
第五个选项卡:配置控件的frame
 
第六个选项卡:主要用来查看控件相关联的属性或者是方法或者是代理或者是它所遵循的一些协议
 file‘s owner
指的是当前xib文件中View所属于的视图控制器,此时View
就代表这个视图控制器的根视图
IBOutlet给实体类关联属性
IBAction给实体类关联方法
这个方法是视图控制器的制定初始化方法 如果不给nib文件名字,系统默认去查找跟当前实体类同名的nib名赋值到这里
第二个参数是当前应用程序的文件名 [NSBundle mainBundle]不写的话自动去找
一个方法可以关联多个按钮,一个按钮可以关联多个方法

- (
id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {  
    }
   
return self;
}

4.
- (void)viewDidLoad {
    [super viewDidLoad];
//xib文件中加载cell
    [self.tableView registerNib:[UINib nibWithNibName:@"ContactCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:kContactCell];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
//   第一种cell重用的方法
   
/*
    static NSString *identifer = @"k-cell";
    ContactCell *cell = [tableView dequeueReusableCellWithIdentifier:identifer];
    if (cell == nil) {
        cell = [[[NSBundle mainBundle]loadNibNamed:@"ContactCell" owner:nil options:nil]lastObject];
    }
    */

//    第二种cell从用的方法
   
ContactCell *cell = [tableView dequeueReusableCellWithIdentifier:kContactCell forIndexPath:indexPath];
    cell.nameLabel.text = @"夏琳";
    return cell;
}

                                         storyboard可视化编程

1. 如果一个视图控制器有多个按钮点击之后都要跳转到同一个界面,此时使用视图在视图控制器之间建立的segue连线,不过要给这个segue加一个标示
如果只有一个按钮点击后,跳转到下一个页面,此时使用按钮和视图控制器之间的连线
实现button控件中的方法

2. - (IBAction)handlePush:(UIButton *)sender {
   
/*
//    self.storyboard
获取当前视图控制器所在的storyboard(故事板),也就是mian.storyboard
//    instantiateViewControllerWithIdentifier
通过视图控制器的唯一标示获取视图控制器对象
    DeatilViewController *deatilVC = [self.storyboard  instantiateViewControllerWithIdentifier:@"aa"];
    [self.navigationController pushViewController:deatilVC animated:YES];
    */

   
通过选择视图控制器之间的连线 segue,完成页面之间的跳转
   [self performSegueWithIdentifier:@"jj" sender:nil];
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
//    获取segue起始端的视图控制器对象
    RootViewController *rootVC = [segue sourceViewController];
//    获取push过去后的视图控制器对象
   
DeatilViewController *detailVC = [segue destinationViewController];
//    textField中的内容取出来复制给下一个界面的属性
    detailVC.string = rootVC.textField.text;  
}











































































































评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值