一、页面控制
在ios项目中关联UI和代码界面有俩种方法Main.storyboard和xib。当然有些人说代码内也可以定义UI,再此不细说。Main.storyboard重量级,适合管理多个ViewController。xib的比较轻量级。
storyboard和xib区别:一个工程中可以有多个xib文件,一个xib文件对应着一个视图控制器和多个视图。而使用storyboard时,一个工程只需要一个主storyboard文件就可以了。因此,在包含多个视图控制器的情况下,采用storyboard管理比较方便,而且storyboard还可以描述界面之间的导航关系。
1.ViewController关联xib的
新建一个类勾选Also create XIB file选项。
勾选Also create XIB file后,会自动创建一个和ViewController类配置好的xib的文件。
然后在拖控件关联到File’s Owner。
2.关联NetViewController.h,监听button,并找到这个控件
鼠标点击button按着conforl键有一条线拉到@interface方法里。
会弹出一条弹框如图。Connection是选择需要的方法类型。可以选择Action。会自动添加一条监听方法- (IBAction)myclea:(id)sender;。
NextViewController.h查看监听方法。
在监听方法中可以实现点击事件。
在弹出弹框时默认Outlet类型,在代码中可以通过self关键字找到这个控件。
拖拽label控件到NextViewController.h文件中
在NextViewController.m文件中使用
2.通过tag属性值找到这个控件
代码中:
UILabel* label =(UILabel*)[self.view viewWithTag:10];
3.页面跳转
如果使用导航
第一个页面按钮方法:
[self.navigationController pushViewController:secondVC animated:YES];
第二个页面按钮方法(返回):
[self.navigationController popViewControllerAnimated:YES];
如果使用模态
第一个页面按钮方法:
[self presentViewController:secondVC animated:YES completion:nil];
第二个页面按钮方法(返回):
[self dismissViewControllerAnimated:YES completion:nil];
页面跳转方法直接在监听的方法中使用就行,例如:
//跳转到下一个页面
- (IBAction)myOk:(id)sender {
NextViewController* next = [[NextViewController alloc] init];
[self presentViewController:next animated:YES completion:nil];
}
//返回
- (IBAction)twoButton:(id)sender {
[self dismissViewControllerAnimated:YES completion:nil];
}
当然在实际开发中不需要这么麻烦。
直接可以在NextViewController.m中定义好Button的指针变量和IBAction方法。然后去xib文件中关联就好了。
1.定义变量
@interface NextViewController ()
{
__weak IBOutlet UIButton *loginButton;
}
2.定义IBAction方法
- (IBAction)login:(id)sender{
//此处实现点击需要的方法
}
3.关联xib
鼠标点击File’s Owner按着confrol键移动到LoginButton
主要关联:Received Action方法和Outlets方法里的loginButton。
至此,关联以及监听方法讲解完毕。