iOS关于界面跳转的几种方法

        

    在iOS中,界面跳转是最普通的,但是其中的几种方法各有讲究,虽然自己也不是很深究,但把现有的理解记录下来:在现在最为简单的是storyboard中的连线了,直接在界面上操作,都懂,里面的push还是model看自己的选择,不过这样又个不好就是你想再界面跳转的时候做点什么不是很好设置,所以大部分还是代码控制跳转。

        下面主要是记录下代码跳转,

先提一下storyboard的跳转,找线:

// 根据指定线的ID跳转到目标Vc
  [self performSegueWithIdentifier:@SendValue sender:self];
然后:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
  // segue.identifier:获取连线的ID
  if ([segue.identifier isEqualToString:@SendValue]) {
    // segue.destinationViewController:获取连线时所指的界面(VC)
    ReceiveViewController *receive = segue.destinationViewController;
    receive.name = @Garvey;
    receive.age = 110;
    // 这里不需要指定跳转了,因为在按扭的事件里已经有跳转的代码
//      [self.navigationController pushViewController:receive animated:YES];
  }
}
这样也可以设置。
还是记录代码设置吧:
1、一种是这样的,没有导航跳转:

在oldC中调用:

[  self presentViewController:newC animated:  YES completion:nil]; 

在newC中调用:

[  self dismissViewControllerAnimated:  YES completion:  nil ];

2、这种方法系统的动画是从下往上推,还有一种也是无导航,而是一开始设置的,就是直接更改 UIWindow  的 rootViewController:

MainViewController *vc = [STORYBOARDinstantiateViewControllerWithIdentifier:@"MainVC"];

self.window.rootViewController = vc;


3、接下来就是有导航的,一个是本来就有导航或storyboard里面拉的导航,直接:

在oldC的btn的监听方法中调用:

[self.navigationController pushViewController:newC animated:YES]; //跳转到下一页面

在newC的方法中调用:

[self.navigationController popViewControllerAnimated:YES]; //返回上一页面  

当有多次跳转发生并希望返回根控制器时,调用:

[  self .navigationController popToRootViewControllerAnimated:  YES ];  //返回根控制器,即最开始的页面

4、还有一种是倒入一个特别导航类的:

MainViewController *mianVC = [self.storyboardinstantiateViewControllerWithIdentifier:@"MainVC"];

    UINavigationController *navCon = [[UINavigationController alloc] initWithRootViewController:mianVC];

    [self presentViewController:navCon animated:YES completion:nil];

其实也相当于第一种推出导航方式,动画也一样。

而push的推出是从左往右推的动画。

一般push比较好用,因为push后可以把一些旧界面直接释放,而present的,则不会。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值