iOS资料码农的日常之iOS开发iOS开发之技能点

iOS-基础知识--UIStoryboardSegue简单总结

2016-06-17  本文已影响1463人  云之君兮鹏
**会当凌绝顶,一览众山小!**<龙虾小兵>

1.segue:可视化编程中连接两个页面的线条,称之为 segue。
2.iPhoneGUI开发中 segue类型主要有三种,包括 push、modal、custom。
在iPad中,segue有(5种):push、modal、popover、replace、custom类型
3.其中custom需要我们自定义 segue来完成页面间跳转。
4.segue 有三个重要属性:标识符、源控制器、 目标控制器。

  • modal类型(模态转换)
         1. 最常用的场景,新的场景完全盖住了旧的那个。用户无法与上一个场景交互,除非他们先关闭这个场景。
        2.它是在viewControllers中的标准切换方式,包括淡出什么的,可以切换动画。
        3.ModalView:就是会弹出一个view,你只能在该view上操作,而不能切换到其他的view,除非你关闭了modalView。
        4.ModalView对应的segue type就是modal segue。在弹出的modalView里操作完成后,就应该dismiss the modal view scene然后切换后原视图。
  • Push类型:
        1.一般需要头一个界面是Navigation Controller的,它是在navigation View Controller中下一级时使用的那种从右侧划入的方式。
        2.该类型是和navigation viewcontrollers一起使用。
  • Popover类型:采用浮动窗口的形式把新页面显示出来。

自定义segue步骤:

步骤一 : 新建一个类继承 UIStoryboardSegue
步骤 二: 选中前 个控制器,按住control鼠标 标辅助完成连线,选 择custom。
步骤三: 选中 定义 segue,设置 segue的identifier 以及关联类。
步骤四: 在 segue类里重写perform方法(界 间跳转默认执行的方法), 自定义跳转效果。

代码部分:在自定义的继于 UIStoryboardSegue类实现部分

// 跳转时, 定义segue会自动触发此法(重写的系统方法)
/ / 这是为了跳转也可以弄成push或者模态
- (void)perform
{
//获取源控制器 (记得要引入目标和源视图控制器)

   UIViewController1 *v1 = (UIViewController*)self.sourceViewController;

//获取目标控制器

  UIViewController2 *v2 = (UIViewController*)self.destinationViewController;

// 自定义页面切换效果
/ / 在动画过程中,首先将 fromView 从父视图中删除,然后将 toView 添加,就是做了一个替换操作。
/ / FromView 需要移除的视图
// toView 需要显示的视图
// duration:动画持续时间
/ / options 动画类型

     [UIView transitionFromView:v1.view toView:v2.view duration:10 options:UIViewAnimationOptionTransitionCurlDowncompletion:^(BOOL finished) {

//动画完成后执 的部分
// 动画只是完成了视图的切换还要使用push或者模态将视图控制器切换}];

   [v1.navigationController pushViewController:vc2 animated:1]
  }

还可以自定义一个push模式(多此一举只为了演示这个方法)

  - (void)perform{

SourceViewController *vc = (InformationViewController *)self.sourceViewController;
DestinationViewController *vc1 = (TableTableViewController *)self.destinationViewController;
[vc.navigationController pushViewController:vc1 animated:1];
   }

页面跳转传值


storyboard界面间跳转会执

// 视图控制器里面实现

   - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 方法, 方便界面间数据统一管理。

• 依据不同的segue标识符来完成数据处理。
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

   CustomViewController *customVC = (CustomViewController*)segue.destinationViewController;

// @“push”这个就是Segue ID 自己的identifier区分好

if ([segue.identifier isEqualToString:@"push"]) {
    customVC.tempString = self.textField.text;

  }else{ NSLog(@"其他情况处理、、、");

 } }
上一篇下一篇

猜你喜欢

热点阅读