视图跳转的四种方式

1、 按钮拉线跳转,直接跳转,经常结合prepareForSegue的方法来实现跳转之前的一些动作(如:传参)

(1)先给建立的连接线segue起个名字fansSegue

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{

    if ([segue.identifier isEqualToString:@"fansSegue"]) {

        TDFansTableViewController *tdfans =  (TDFansTableViewController *)segue.destinationViewController;

        //将当前页面的user传递给下一个页面的tdfans.user

        tdfans.user = self.user;

    }


2、tabbar纯代码创建的跳转

(1)其中Home和Position是storyboard的名字

    UIStoryboard * storyboard1 = [UIStoryboard storyboardWithName:@"Home" bundle:nil];

    UINavigationController * homeVC = [storyboard1 instantiateInitialViewController];

    [self addChildViewController:homeVC];


    UIStoryboard * storyboard2 = [UIStoryboard storyboardWithName:@"Position" bundle:nil];

    UINavigationController * positionVC = [storyboard2 instantiateInitialViewController];

    [self addChildViewController:positionVC];


(2)storyboard和pushnavigation结合 的跳转(其中TDEditingCurrentTravelDiaryVC是在属性中Storyboard ID设置,下一个页面视图控制器的属性中去设置

            //跳转传参

            UIStoryboard *CameraStoryBoard = [UIStoryboard storyboardWithName:@"Camera" bundle:nil];

            TDEditingCurrentTravelDiaryViewController *vc = [CameraStoryBoard instantiateViewControllerWithIdentifier:@"TDEditingCurrentTravelDiaryVC"];

            [self.navigationController pushViewController:vc animated:YES];

            //diary_id传递给TDCameraViewController中的参数

            vc.diaryId = responseDic[@"data"];

3、presentViewController:(效果是从下往上)两句代码的区别在于,效果不一样,记住pop和push的效果是横向的就行,简单一句话:(其中nv是指要presentview出来的某一个视图控制器)

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


4、代码加建立连接的跳转:对于tableviewController有两种情况:一是:创建一个cell,为其建立一个连接跳转到另一个视图控制器,连接是直接建立在cell上的,这种方法经常用到一个方法:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

    UIStoryboard * storyboard5 = [UIStoryboard storyboardWithName:@"Personal" bundle:nil];

    UINavigationController * personalNV = [storyboard5 instantiateInitialViewController];

    TDPersonalViewController * personalVC = (TDPersonalViewController *)personalNV.topViewController;

    personalVC.user = [[TDUser alloc]init];

    personalVC.user.user_id = [self.follow_id intValue];

    [self.navigationController pushViewController:personalVC animated:YES];

}


二是:从当前要跳转的视图控制器中的整个视图控制器拉一条连接线到下一个视图控制器中,

在didselectrowatindexpath中写,

并且在建立的连接线上为其命名:(在StoryBoard Segue的identifier中给它一个名字personalMessageSegue

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

    if (indexPath.section == 0 && indexPath.row == 0) {

         [self performSegueWithIdentifier:@"personalMessageSegue" sender:nil];

    }

}









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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值