UINavigationController

1>使用步驟
1,初始化UINavigationController
2,設置UIWindow的rootViewController(根控制器)爲UINavigationController(導航控制器)
3,根據具體情況,通過push方法添加對應個數的子控制器

2>
1,添加子控件 [導航控制器名 pushViewController:子控件名 animated:YES];
2,導航控制器發現棧頂多了東西,便會創建他的view。顯示在導航控制器上面的永遠是棧頂控制器的view。
3,點擊Back後,棧頂的控制器被銷燬,對應的view也就銷燬,此時導航顯示的是新的棧頂控制器的view。

3>
導航控制器用來存放子控制器的棧:childViewControllers 和 viewControllers (兩個數組)
因此也可以這樣添加子控制器:
[nav addChildViewController:one];
或者往數組裏加  nav.viewControllers = @[one]; (childViewControllers只讀,不可以)

4》關於手動出棧
1, //把當前棧頂控制器銷燬
    [self.navigationController popViewControllerAnimated:YES];
2, //把棧裏所有控制器銷燬,只留根控制器
    [self.navigationController popToRootViewControllerAnimated:YES];
3, //回到指定控制器
   [self.navigationController  popToViewController:one animated:YES];

5>
1,一個導航控制器就一個導航條
2,導航欄上面顯示什麼內容由棧頂控制器的navigationItem屬性決定。
在當前棧頂控制器的viewDidLoad裏設置。
3,self.navigationItem.left/right/title/titleView
4,左上角返回鍵的內容由上一個控制器決定

   
//修改返回鍵的內容
    self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc]initWithTitle:@"返回" style:UIBarButtonItemStyleDone target:nil action:nil];

6》通過stroyboard創建控制器
1,脫線不能往回拖,不是返回,而是創建一個新的控制器,不利於內存,打亂順序。
真的需要返回,用pop方法。



  
發佈了40 篇原創文章 · 獲贊 1 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章