ios中利用segue来进行页面跳转
导言
在做ios的app作业时,需要点击button进行页面跳转,在网上学习了一下,UINavigation Controller 跳转到UITableViewController和UIViewController的方法----用segue来跳转
1.什么是segue
Storyboard上每一根用来界面跳转的线,都是一个UIStoryboardSegue对象,简称segue

2.segue三个重要的属性
//1.唯一标识
@property (nonatomic , readonly) NSString *identifier;
//2.来源控制器
@property (nonatomic , readonly) id sourceViewController;
//3.目标控制器
@property (nonatomic , readonly) id destinationViewController;
3.segue的类型
1.自动型:点击某个控件后,自动执行segue,自动完成页面跳转
2.手动型:需要通过手写代码执行segue,才能完成界面跳转(需要判断的)
自动型segue
1.按住control键,直接从控件托线到目标控制器(从左边的拖到右边的)
2.点击登录按钮后,就会跳到右边的控制器
建议:如果点击某个控件后,不需要做任何判断,一定要跳转到下一个界面,则使用自动型segue
手动型segue
1.按住control键,从来源控制器托线到目标控制器(从右边的拖到左边的)
2.手动型的segue需要设置一个标识,即给这个segue在identifier处取个名字
3.需要跳转时,使用perform方法执行对应的segue
[self performSegueWithIdentifier:@"你命名的名字" sender:nil];
ps:使用perform这个方法时,必须由来源控制器调用,即从哪个页面开始跳,就写在哪个页面里
建议:如果点击某个控件后,需要做一些判断,满足某一些条件后才跳转到下一个页面,就用手动型segue
4.方法:performSegueWithIdentifier:sender:
[self performSegueWithIdentifier:@"wwwww"sender:nil];
//这个self是来源控制器
1.根据identifier去storyboard中找到对应的线,并新建UIStoryboardSegue对象
2.设置segue对象的sourceViewController(来源控制器)
3.新建并设置segue对象的destinationViewController(目标控制器)
4.调用sourceViewController的下面方法,做一些跳转前的准备工作,并且传入创建好的segue对象
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender;
//这个sender是当初performSegueWithIdentifier:sender:中传入的sender
5.调用segue对象的-(void)perform:方法,开始执行界面跳转操作
6.取得sourceViewController所在的UINavigationController
7.调用UINavigationController的push方法,将destinaViewController压入栈中,完成跳转
这样就完成了页面跳转
PS:这只是页面跳转的一种,且仅用于用storyboard来创建页面时使用
5.注意
个人在使用时,一开始调用了-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender的方法,因为只要是走storyboard的控制器都会调用,导致后面的页面跳转崩了,就在方法里面加了个if判断,
当名字等于在identifier处设置的名字相同时,才让这个segue来行动
以上就是全部内容了,小白第一次写,难免有些理解不对地方,望指出,谢谢🙏

浙公网安备 33010602011771号