iOS開發——控制器OC篇&UINavigationController&UITabBarController詳解

來源:互聯網
上載者:User

標籤:


UINavigationController&UITabBarController詳解

  

一: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;

 

 

Segue的屬性(Storyboard上每一根用來介面跳轉的線,都是一個UIStoryboardSegue對象(簡稱Segue))

根據Segue的執行(跳轉)時刻,Segue可以分為2大類型

  • 自動型:點擊某個控制項後(比如按鈕),自動執行Segue,自動完成介面跳轉
  • 手動型:需要通過寫代碼手動執行Segue,才能完成介面跳轉

 

Segue屬性

  • 唯一標識
  • @property (nonatomic, readonly) NSString *identifier;
  • 來源控制器
  • @property (nonatomic, readonly) id sourceViewController;
  • 目標控制器
  • @property (nonatomic, readonly) id destinationViewController;

 

 

Segue方法

  • [self performSegueWithIdentifier:@"login2contacts" sender:nil];
  • // Segue必須由來源控制器來執行,也就是說,這個perform方法必須由來源控制器來調用
  • - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender;
  • [self performSegueWithIdentifier:@“login2contacts” sender:@“jack”];

 

二:UITabBarController

 

 

UITabBarController的使用步驟

  1. 初始化UITabBarController
  2. 設定UIWindow的rootViewController為UITabBarController
  3. 根據具體情況,通過addChildViewController方法添加對應個數的子控制器

 

UITabBarController添加控制器的方式有2種

添加單個子控制器

  • - (void)addChildViewController:(UIViewController *)childController;

設定子控制器數組

  • @property(nonatomic,copy) NSArray *viewControllers;

 

注意:UITabBarButton裡面顯示什麼內容,由對應子控制器的tabBarItem屬性決定

 

UITabBarItem有以下屬性影響著UITabBarButton的內容

  • 標題文字
  • @property(nonatomic,copy) NSString *title;
  • 表徵圖
  • @property(nonatomic,retain) UIImage *image;
  • 選中時的表徵圖
  • @property(nonatomic,retain) UIImage *selectedImage;
  • 提醒數字
  • @property(nonatomic,copy) NSString *badgeValue;

 

控制器的展示方式(開發中很重要)

以Modal的形式展示控制器

  • - (void)presentViewController:(UIViewController *)viewControllerToPresent animated: (BOOL)flag completion:(void (^)(void))completion

關閉當初Modal出來的控制器

  • - (void)dismissViewControllerAnimated: (BOOL)flag completion: (void (^)(void))completion;

 

三:UINavigationController&UITabBarController使用實戰:

本文只是簡單的介紹關於UINavigationController喝UITabBarController的一些常用屬性方法和提示,關於基本使用和實戰篇,請看後面的文章,後面我將結合著兩個控制器應用到實際開發中去實現目前iOS開發的主流架構:

其實就是相當於我們項目開發中的App環境的搭建

 環境搭建之玩轉UINavigationController與UITabBarController

環境搭建之純程式碼:http://www.cnblogs.com/iCocos/p/4690677.html

環境搭建之Xib:http://www.cnblogs.com/iCocos/p/4690714.html

環境搭建之StoryBoard:http://www.cnblogs.com/iCocos/p/4690659.html

iOS開發——控制器OC篇&UINavigationController&UITabBarController詳解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.