IOS 页面跳转方法(采用Storyboard或者纯代码)

IOS页面跳转主要分为两种方式:

 1,采用XCode最新的storyboard模板,通过segue 的方式,基本不用写代码,非常的方便,适合个人开发者,做项目不大的开发简直是利器。但是由于storyboard不便于团队开发,对版本管理会造成很大的困扰,所以我在的团队貌似还是全部手动写代码。

   2, 手动代码跳转。

Storyboard:

segue的应用也分为两种,segue实际上就是一种跳转的关系,可以理解为两个物件之间的纽带,那么跳转的纽带就有两种,第一种是View上的某个部件和两一个view之间的,第二种就是两个VIewController之间的。

首先介绍第一种。

建立一个singleview Applicaiton项目,命名为pageSkipBySegue。 (图1.0)[插IOS 页面跳转方法(采用Storyboard或者纯代码)_第1张图片入]

在storyboard中的首页添加label ,text改为Page1,添加button ,text改为skip to Page2 。然后在storyboard中添加一个新的viewcontroler,添加label,text改为Page2。(图1.1 )IOS 页面跳转方法(采用Storyboard或者纯代码)_第2张图片

然后按住ctrl健,同时按住鼠标左键,连接Button(skip to Page2)和新建的viewcontrol,松开,会出现一个选项栏,选择model(其他两种是什么意思呢?谷歌吧~)。两个视图之间连接的那条线就是segue (图1.2)IOS 页面跳转方法(采用Storyboard或者纯代码)_第3张图片

大功告成,运行,点击button,跳转到第二页了。

下面介绍第二种,首先我们将刚才所连的那个线删除,然后在结构示意图上面点击viewController,  然后然后连接连个viewController,我之前怎么都连接不上,后来发现只能是连接结构图上的名字,然后按住CTRL,连接storyboard里的第二个view才可以,或者直接在结构图上面连接。松开右键选择model。

点击segue,identifier设置为skip.(图2.1)IOS 页面跳转方法(采用Storyboard或者纯代码)_第4张图片

点击右上角的图标(图2.2),进入assistant editor,会进入一个双视图(图2.3),左边是storyboard,右边是代码,然后右边的代码选择viewController.h,同样连接button和右边的代码,你会发现出现一个选项(图2.4),选择Action, 起名为doBtnSkip ,你发现.h文件中多了一行  - (IBAction)doBtnSkip:(id)sender ,在对应的.m文件中多了 - (IBAction)doBtnSkip:(id)sender{  },这样便将你的button和相应的函数对应了。

    在函数中加入[self performSegueWithIdentifier:@"skip" sender:self];

这个函数的意思是,点击button就会执行id为skip的segue了 ,运行,可以跳转。代码:建立一个project,选择singleview ,然后起名为pageSkipByCode.接着就是在page1上面添加button,label。接下来,我们要实现一点和xib有关的类了,新建一个类,命名为SecondViewController,继承Viewcontroller,(图3.0)IOS 页面跳转方法(采用Storyboard或者纯代码)_第5张图片一定要勾选with xib for user interface(图3.1)IOS 页面跳转方法(采用Storyboard或者纯代码)_第6张图片 ,这次,我们会多出三个文件(图3.2) .h ,.m 和 .xib 。xib实际上是之前的用户界面设计文件,后来被storyboard取代。进入xib文件,在上面添加个label。 然后用之前提到的方法,给page1上面的button关联函数。因为我们之后会用到SecondViewController类,所以要在ViewController.m 里面加入#import"SecondViewController.h",接下来我们完成函数内容:- (IBAction)doBtnSkip:(id)sender {SecondViewController *second = [[SecondViewController alloc]initWithNibName:@"SecondViewController" bundle:nil];[self presentViewController:second animated:YES completion:nil];}完成。(不好意思,这个博客还不太会用,图片居然都是连接。。。)

 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
 

你可能感兴趣的:(IOS)