Objective - C學習筆記:控制器的管理

來源:互聯網
上載者:User

標籤:

1. 如何建立一個控制器

1.1. 控制器常見的建立方式有以下幾種

//1.1.1:通過storyboard建立

//1.1.2:直接建立YHViewController *viewController = [[YHViewController alloc] init];//1.1.3:指定xib檔案來建立YHViewController *viewController= [[YHViewController alloc] initWithNibName:@"YHViewController" bundle:nil];

 

2. 通過storyboard建立控制器


//2.1:先載入storyboard檔案(TestStoryBoard是storyboard的檔案名稱)UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"TestStoryBoard" bundle:nil];//2.2:接著初始化storyboard中的控制器
//2.2.1:初始化“初始控制器”(箭頭所指的控制器)YHViewController *viewController = [storyboard instantiateInitialViewController];//2.2.2:通過一個標識初始化對應的控制器YHViewController *viewController = [storyboard instantiateViewControllerWithIdentifier:@"yh"];

 

3: 控制器view的消極式載入

3.1: 控制器的view是消極式載入的:用到時再載入

3.2: 可以用isViewLoaded方法判斷一個UIViewController的view是否已經被載入

3.3: 控制器的view載入完畢就會調用viewDidLoad方法

 

4: 多控制器

4.1: 一個iOS的app很少只由一個控制器組成,除非這個app極其簡單

4.2: 當app中有多個控制器的時候,我們就需要對這些控制器進行管理

4.3: 有多個view時,可以用一個大的view去管理1個或者多個小view

4.4: 控制器也是如此,用1個控制器去管理其他多個控制器

4.5: 比如,用一個控制器A去管理3個控制器B、C、D

4.5.1: 控制器A被稱為控制器B、C、D的“父控制器”

4.5.2: 控制器B、C、D的被稱為控制器A的“子控制器”

4.6: 為了便於管理控制器,iOS提供了2個比較特殊的控制器

4.6.1: UINavigationController: 可以輕鬆地管理多個控制器,輕鬆完成控制器之間的切換,典型例子就是系統內建的“設定”應用

4.6.2: UITabBarController

 

5: UINavigationController的簡單使用

 

5.1: UINavigationController的使用步驟

5.1.1: 初始化UINavigationController

5.1.2: 設定UIWindow的rootViewController為UINavigationController

5.1.3: 根據具體情況,通過push方法添加對應個數的子控制器

 

5.2: UINavigationController的子控制器

//5.2.1: UINavigationController以棧的形式儲存子控制器@property(nonatomic,copy) NSArray *viewControllers;@property(nonatomic,readonly) NSArray *childViewControllers;//5.2.2:使用push方法能將某個控制器壓入棧- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated;//5.2.3:使用pop方法可以移除控制器//將棧頂的控制器移除- (UIViewController *)popViewControllerAnimated:(BOOL)animated;//回到指定的子控制器- (NSArray *)popToViewController:(UIViewController *)viewController animated:(BOOL)animated;//回到根控制器(棧底控制器)- (NSArray *)popToRootViewControllerAnimated:(BOOL)animated;

 

6: 如何修改導覽列的內容

//6.1: 導覽列的內容由棧頂控制器的navigationItem屬性決定//6.2: UINavigationItem有以下屬性影響著導覽列的內容//左上方的返回按鈕@property(nonatomic,retain) UIBarButtonItem *backBarButtonItem;//中間的標題視圖@property(nonatomic,retain) UIView *titleView;//中間的標題文字@property(nonatomic,copy) NSString *title;//左上方的視圖@property(nonatomic,retain) UIBarButtonItem *leftBarButtonItem;//右上方的視圖@property(nonatomic,retain) UIBarButtonItem *rightBarButtonItem;

 

Objective - C學習筆記:控制器的管理

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.