UINavigation 導航控制器


//*********************************Appdelegate.m****************************

//1.創建窗口對象

    self.window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen]bounds]];

//2.首先創建視圖控制器

    FirstViewController *firstVC = [[FirstViewController alloc]init];

    firstVC.view.backgroundColor = [UIColor blueColor];

//視圖控制器存在系統屬性 .navigationController用來保存導航控制器對象

    NSLog(@"加入導航控制器之前:%@",firstVC.navigationController);

    //1.導航控制器是管理視圖控制器的容器類型的視圖控制器

    //2.導航控制器是以棧的形式管理視圖控制器的

    //3.在導航控制器上顯示的是在導航控制器的棧頂位置的視圖控制器的view

    //4.當往導航控制器的棧中加入一個視圖控制器時,加入的代碼會自動設置視圖控制器的navigationController的屬性爲導航控制器

//3.然後創建導航控制器,並且將firstVC作爲導航控制器的根視圖控制器

    UINavigationController *navCtrl = [[UINavigationController alloc]initWithRootViewController:firstVC];

    NSLog(@"加入導航控制器之後:%@",firstVC.navigationController);

    navCtrl.view.backgroundColor = [UIColor redColor];

    //導航控制器是以數組的形式來模擬棧,viewControllers屬性中保存了導航控制器上的所有的視圖控制器

    //當壓入一個視圖控制器時,會自動的將這個視圖控制器添加到viewControllers數組

    NSLog(@"%@",navCtrl.viewControllers);

//4.最後設置導航控制器爲窗口的根視圖控制器

    self.window.rootViewController = navCtrl;

    //讓窗口可見

    [self.window makeKeyAndVisible];


//***********************************FirstViewController.m*****************************
//創建按鈕對象

- (void)createBtn

{

    UIButton *btn = [[UIButton alloc]initWithFrame:CGRectMake(30, 70, 300, 40)];

    [btn setTitle:@"進入下一級VC" forState:UIControlStateNormal];

    btn.titleLabel.font = [UIFont systemFontOfSize:26];

    [btn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];

    

    [self.view addSubview:btn];

}

//定義點擊響應方法

- (void)btnClick:(UIButton *)btn

{

    SecondViewController *secondVC = [[SecondViewController alloc]init];

   //獲取當前對象的導航控制器,並將新的視圖控制器壓入進來

    [[self navigationControllerpushViewController:secondVC animated:YES];

}




//************************************原理演示*************************************

//創建窗口對象

    self.window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen]bounds]];

    //創建導航控制器

    UINavigationController *navCtrl = [[UINavigationController alloc]init];


    //設置導航控制器爲窗口的根視圖控制器

    self.window.rootViewController = navCtrl;

    navCtrl.view.backgroundColor = [UIColor redColor];

    

    FirstViewController *firstVC = [[FirstViewController alloc]init];

    firstVC.view.backgroundColor = [UIColor blueColor];

    //firstVC.view.alpha = 0.5;

    

    SecondViewController *secondVC = [[SecondViewController alloc]init];

    secondVC.view.backgroundColor = [UIColor blueColor];

    secondVC.view.alpha = 0.5;

    

    //往導航控制器中壓入視圖控制器

    //在導航控制器上顯示的view是最後壓入的控制器的view

    [navCtrl pushViewController: firstVC animated:YES];

    [navCtrl pushViewController:secondVC animated:YES];

    

    //讓窗口可見

    [self.window makeKeyAndVisible];

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章