iOS的页面跳转

1.通过NavigationController跳转
 
 这个方式适用于根视图为NavigationController的控制器,首先,在storyboard中给跳转的目标控制器视图设置Identifier,名字自定,我这里直接使用Controller对应的名字,如图1:
 需要跳转时调用如下代码:
 //第一个GarageDetailViewController为需要跳转的控制器,第二个GarageDetailViewController为上面设置的Identifier
 GarageDetailViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"GarageDetailViewController"];
 [self.navigationController pushViewController:vc animated:YES];


图1


如果第一个Controller包含TabBar,而希望在跳转之后的页面不显示TabBar,只要加入以下一行代码
[vc setHidesBottomBarWhenPushed:YES];



2.通过Storyboard Segue

这个方式同时适用于push和modal,按着control键从开始的页面拖线到目标页面,松手后选择使用push还是modal切换,如图2。
然后两个页面之间生成了一个segue,选中segue,设置它的Identifier,如图3、4 。在开始页面的Controller中在需要切换的地方调用:
[self performSegueWithIdentifier:@"toGarageList" sender:self];


图2



图3



图4


如果第一个Controller包含TabBar,而希望在跳转之后的页面不显示TabBar,只要重写以下方法
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    [segue.destinationViewController setHidesBottomBarWhenPushed:YES];
}


3.模态切换(默认从底部)

[self presentViewController:myVC animated:YES completion:^{
     //完成后的处理代码    
}];

*myVC可以在storyboard创建、xib创建、纯代码创建

(1)storyboard 如方法1

 GarageDetailViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"GarageDetailViewController"];

(2)xib

 SponsorPersonPageViewController *vc = [[SponsorPersonPageViewController alloc] initWithNibName:@"SponsorPersonPageViewController" bundle:nil];

(3)纯代码

OrderNewViewController *vc = [[OrderNewViewController alloc] init];
此时需要重写OrderNewViewController的loadView方法

- (void)loadView
{
    [super loadView];
    self.view.backgroundColor = [UIColor whiteColor];
}

参考: http://www.cnblogs.com/mjios/archive/2013/02/26/2933667.html



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值