iOS学习笔记-048.UINavigationController——导航控制器
2017-03-04 16:16
525 查看
UINavigationController导航控制器
一UINavigationController的使用步骤
二UINavigationController的子控制器
三如何修改导航栏的内容
四使用UINavigationController
五图示
六使用Storyboard实现的图示
七生命周期 内存警告
导航栏上的标题是由栈顶控制器决定的,导航栏上的 “返回”是由上一个决定的
一UINavigationController的使用步骤
二UINavigationController的子控制器
三如何修改导航栏的内容
四使用UINavigationController
五图示
六使用Storyboard实现的图示
七生命周期 内存警告
UINavigationController——导航控制器
一、UINavigationController的使用步骤
1. 初始化 UINavigationController 2. 设置UIWindow的rootViewController为UINavigationController 3. 根据具体情况,通过push方法添加对应个数的子控制器
二、UINavigationController的子控制器
UINavigationController以栈的形式保存子控制器 @property(nonatomic,copy) NSArray *viewControllers; @property(nonatomic,readonly) NSArray *childViewControllers; 使用push方法能将某个控制器压入栈 - (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated; 使用pop方法可以移除控制器将栈顶的控制器移除 - (UIViewController *)popViewControllerAnimated:(BOOL)animated; 回到指定的子控制器 - (NSArray *)popToViewController:(UIViewController *)viewController animated:(BOOL)animated; 回到根控制器(栈底控制器) - (NSArray *)popToRootViewControllerAnimated:(BOOL)animated;
三、如何修改导航栏的内容
导航栏的内容由栈顶控制器的navigationItem属性决定 UINavigationItem有以下属性影响着导航栏的内容 左上角的返回按钮 @property(nonatomic,retain) UIBarButtonItem *backBarButtonItem; 中间的标题视图 @property(nonatomic,retain) UIView *titleView; 中间的标题文字 @property(nonatomic,copy) NSString *title; 左上角的视图 @property(nonatomic,retain) UIBarButtonItem *leftBarButtonItem; UIBarButtonItem *rightBarButtonItem 右上角的视图 @property(nonatomic,retain) UIBarButtonItem *rightBarButtonItem;
导航栏上的标题是由栈顶控制器决定的,导航栏上的 “返回”是由上一个决定的
-(void)viewDidLoad{ [super viewDidLoad]; //第一个控制器的标题显示 self.navigationItem.title = @"第一个控制器"; //第二个控制器上显示 self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc]initWithTitle:@"返回" style:UIBarButtonItemStylePlain target:nil action:nil]; }
四、使用UINavigationController
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; self.window.backgroundColor = [UIColor whiteColor]; // 1.创建导航控制器 UINavigationController *nav = [[UINavigationController alloc] init]; // 2.设置导航控制器为window的根控制器 self.window.rootViewController = nav; // 创建第一个控制器并添加到导航控制器中 NJOneViewController *one = [[NJOneViewController alloc] init]; [nav pushViewController:one animated:YES]; /* // 3.添加子控制器到导航控制器中 // 创建一些子控制器 UIViewController *vc1 = [[UIViewController alloc] init]; vc1.view.backgroundColor = [UIColor redColor]; UIViewController *vc2 = [[UIViewController alloc] init]; vc2.view.backgroundColor = [UIColor greenColor]; UIViewController *vc3 = [[UIViewController alloc] init]; vc3.view.backgroundColor = [UIColor purpleColor]; // 添加子控制器到导航控制器中 [nav pushViewController:vc1 animated:YES]; [nav pushViewController:vc2 animated:YES]; [nav pushViewController:vc3 animated:YES]; */ [self.window makeKeyAndVisible]; return YES; }
- (IBAction)jump2Two:(id)sender { // 1.创建第二个控制器 NJTwoViewController *two = [[NJTwoViewController alloc] init]; // 2.将第二个控制器添加到导航控制器中 // 只要当前控制器是导航控制器的子控制器,就快要通过该属性直接获取到当前控制器所在的导航控制器 [self.navigationController pushViewController:two animated:YES]; }
五、图示
六、使用Storyboard实现的图示
代码能做的,Storyboard不一定都能做,下面的第三个返回到第二个,使用的是代码- (IBAction)xmBack:(id)sender { [self.navigationController popViewControllerAnimated:YES]; }
七、生命周期 – 内存警告
相关文章推荐
- Xcode9学习笔记17 - 导航视图控制器UINavigationController
- iOS开发基础学习笔记——导航控制器2->导航栏(UINavigationBar)/工具栏(toolBar)/导航元素按钮(UINavigationItem)
- ios 学习笔记,tabbarcontroller 实现底部导航
- IOS开发学习笔记(导航控制器,视图控制器,模态)
- 学习iOS自定义导航控制器UINavigationController
- iOS开发学习笔记——导航控制器1(UINavigationController)
- iOS学习笔记 (9) UITabBarController分栏控制器
- iOS导航控制器学习笔记(1)
- IOS学习笔记30—两个ViewController间传值(一)
- IOS学习笔记 -- UIPickerView 、UIDatePicker 以及多控制器管理
- IOS学习笔记30—两个ViewController间传值(一)
- IOS学习笔记31—两个ViewController间传值(二)
- IOS 学习笔记(3) 视图UITabbarController
- IOS学习笔记30—两个ViewController间传值(一)
- IOS学习笔记(5)UINavigationController UITabBarController
- IOS学习笔记31—两个ViewController间传值(二)
- 2011斯坦福大学iOS应用开发教程学习笔记(第八课)viewController生命周期
- 导航视图控制器-------------学习笔记
- IOS NavigationController Toolbar学习笔记
- 2011斯坦福大学iOS应用开发教程学习笔记(第八课)viewController生命周期