使用Xib要注意的一些问题

1、运行程序后,模拟器上不是按Xib上的UI显示的

今天开始使用Xib,奇怪地发现在Xib上布好的UI局,运行起来在模拟器上不是按Xib上的UI显示的,有些控件被另一些覆盖了。

解决方案是:第一步:选中目标 ".xib"文件。选取右边最上面那排的第一个像A4纸一样的图标,然后在下面找到 "Use Autolayout",将它前面的"钩"去掉。如图所示:

第二步:选中目标 ".xib"文件。选取右边最上面那排的第四个像人头一样的图标,然后在"Simulated Metrics" -------> 选中“Size”----------> 将它设置为“Retina 3.5 Full Screen”。如图所示

做完上面两步,模拟器上运行的结果就和Xib上布的局一样了。


2、xib 怎样加载到一个UIViewController上面?

有两种做法:方法一,在建文件时,选上"With XIB for user interface",这个时候的XIB文件名和.h .m 的文件名一致,只是后缀名不一样。见下图:


方法二,自己单独新建一个XIB文件。“User Interface” -------> "View" ---------> "next"。见下图:


“next”后选iPhone,点击"next",为文件起名,注意千万不要加".xib"。

但是第二种方法创建的.xib没有加到UIViewController上,按下图所示,选中".xib"文件 ------> 选中"File’s Owner " (一定要选它呀)   ------>选取右边最上面那排的第三个图标 ----------> 找到Custom Class -------->Class 里面写上要关联的 文件名。


3、如何从一个界面推到另外一个界面?

//因为是用xib,所以要用initWithNibName:这个方法,后面接xib的文件名SecViewController。注意不能写成SecViewController.xib,写成 XXX.xib 就找不到了

在第二步中,如果是用第一种方法创建的 Xib 文件,就用下面这条语句

   SecViewController * secCtrl = [[SecViewControlleralloc] initWithNibName:@"SecViewController"bundle:nil];

在第二步中,如果是用第二种方法创建的 Xib 文件,就用下面这条语句

   SecViewController * secCtrl = [[SecViewController alloc] initWithNibName:@"WJFirstView" bundle:nil];

 以上两条语句二选一  

(如果没有UINavigationController,那么只能用 "presentViewController:"这个方法来推界面,如果有UINavigationController,用

[self.navigationController pushViewController:secCtrl animated:YES];

) 

[self presentViewController:secCtrl animated:YES completion:^{

        

    }];




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值