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来行动

 

以上就是全部内容了,小白第一次写,难免有些理解不对地方,望指出,谢谢🙏

 

posted @ 2020-04-13 15:15  阿-栋  阅读(505)  评论(0)    收藏  举报