Objective-C页面跳转方法总结

来源:互联网 发布:js方法参数为对象 编辑:程序博客网 时间:2024/06/14 23:46

这里就限制介绍代码实现页面跳转,Storyboard的segues方式就不多介绍了,这种方法不适合团队开发。
最多用到的就是pushViewController和与之对应的方法是popViewControllerAnimated。都需要有navigation。
语句为

[self.navigationController pushViewController:newC animated:YES]; //跳转到下一页面[self.navigationController popViewControllerAnimated:YES]; //返回上一页面[ self .navigationController popToRootViewControllerAnimated: YES ];  //返回根控制器,即最开始的页面

这里重点介绍一下popToViewController方法:
可以用数组下表的方式实现:

[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:2] 

也可以这样:

for (UIViewController *temp in self.navigationController.viewControllers) {           if ([temp isKindOfClass:[你要跳转到的Controller class]]) {              [self.navigationController popToViewController:temp animated:YES];           }       }

此外pushViewController和popViewController的动画是可以改变的,有多中type,也可以实现模态跳转的效果,这里给大家介绍一个我比较喜欢的跳转动画效果:

-(void)pageCurlAnmation{    CATransition * tran=[CATransition animation];    tran.delegate =self;    tran.duration = 1;    tran.type = @"rippleEffect";    tran.subtype = @"fromRight";    UIView *view = self.navigationController.view;    [view.layer addAnimation:tran forKey:@"vbdb"];}

上面type和subtype的类型可以自行查看文档。push或者pop操作的时候:

    [self pageCurlAnmation];    [self.navigationController popViewControllerAnimated:YES];

还有经常用到的跳转方法是模态(Modal)形式展示控制器:

[ self presentViewController:SVC animated: YES completion:nil];//跳转[ self dismissViewControllerAnimated: YES completion: nil ];//返回

如果要跳转的试图控制器为普通的UIViewController,可以利用
[[UINavigationController alloc] initWithRootViewController:controller]
方法来转换一下。

0 0
原创粉丝点击