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子项不显示。创建格式如下
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