iOS 页面跳转

交流qq群:132913650

原来的网址:http://zhidao.baidu.com/link?url=doPxIYfkVX4220Leu1tj284azWQK6s4sUblw2Jet-L6hOmM126_1oZ5nUWHATRluiviXTyvRzGP1rn9pLIZxD_hsLHYCPGSoDn-bwxNKL5e

1.导航类型

UINavigationController 适用于父子页面的跳转
UITabBarController 适用于平级页面的跳转

2.presentViewController / dismissViewControllerAnimated和pushViewController / popViewController
(1)只有从UINavigationController导航过来的UIViewController 才可以使用pushViewController / popViewController,从其它导航进入的只能使用presentViewController / dismissViewControllerAnimated
(2)如果A界面是通过presentViewController进入的,那么在A界面里只能使用presentViewController导航,如果A界面是通过UINavigationController包装了一层进入,则可使用pushViewController导航。
(3)如果A界面是一个UITabBarController,进入时是通过presentViewController来导航的,那么子Tab里也只能通过presentViewController来导航,如果进入时是通过UINavigationController包装了一层进入,则可使用[self.tabBarController.navigationController pushViewController:abcdViewController animated:true];这种方式导航。

3.修改UINavigationController导航进入后导航栏的图标及文字
UIBarButtonItem* leftBar = [[UIBarButtonItem alloc]initWithTitle:@"返回" style:UIBarButtonItemStylePlain target:self action:@selector(homeBack)];
self.navigationItem.leftBarButtonItem = leftBar;
//可添加多个导航按钮

// self.navigationItem.leftBarButtonItems = nil;
//同样右边的导航按钮也可以设置

4.创建UITabBarController时需注意,要先创建出来,然后通过UINavigationController包装后才能显示,否则tab子项不显示。创建格式如下
Java代码 
TabOneViewController* oneVC = [[TabOneViewController alloc]init]; 
oneVC.view.backgroundColor = [UIColor whiteColor]; 
UITabBarItem* item1 = [[UITabBarItem alloc]initWithTitle:@"tab1" image:nil tag:0]; 
oneVC.tabBarItem = item1; 

TabTwoViewController* twoVC = [[TabTwoViewController alloc]init]; 
UITabBarItem* item2 = [[UITabBarItem alloc]initWithTitle:@"tab2" image:nil tag:1]; 
twoVC.tabBarItem = item2; 

HomeViewController* homeVC = [[HomeViewController alloc]init]; 
NSArray* array = [[NSArray alloc]initWithObjects:oneVC,twoVC, nil]; 
homeVC.viewControllers = array; 

UINavigationController* navVC = [[UINavigationController alloc]initWithRootViewController:homeVC]; 
[self presentViewController:navVC animated:YES completion:^{}]; 

//下面这种创建了HomeViewController后,HomeViewController下的子Tab不能通过push或者pop导航 
// HomeViewController* homeVC = [[HomeViewController alloc]init]; 
// [self presentViewController:homeVC animated:YES completion:^{}]; 

5.UITabBarController各页面之间的切换
实现UITabBarControllerDelegate协议
//实现协议方法,用于切换Tab时,更改页面的标题
-(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
NSInteger index = tabBarController.selectedIndex;
NSString *title;
switch (index) {
case 0:
title = @"Message";
break;
case 1:
title = @"User List";
break;
}
self.title
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值