一、視圖切換
二、UITabBarController分頁控制器
注意事項:
具體步驟如下:
復制代碼 代碼如下:
//a.初始化一個tabBar控制器
UITabBarController *tarbarVC = [[UITabBarController alloc] init];
//設置控制器為Window的根控制器
self.window.rootViewController = tarbarVC;
//b.創建子控制器
UIViewController *c1 = [[UIViewController alloc] init];
c1.view.backgroundColor = [UIColor grayColor];
c1.view.backgroundColor=[UIColor greenColor];
c1.tabBarItem.title = @"消息";
c1.tabBarItem.image = [UIImage imageNamed:@"tab_recent_nor"];
c1.tabBarItem.badgeValue = @"123";
UIViewController *c2 = [[UIViewController alloc] init];
c2.view.backgroundColor = [UIColor brownColor];
c2.tabBarItem.title = @"聯系人";
c2.tabBarItem.image = [UIImage imageNamed:@"tab_buddy_nor"];
UIViewController *c3 = [[UIViewController alloc] init];
c3.tabBarItem.title = @"動態";
c3.tabBarItem.image = [UIImage imageNamed:@"tab_qworld_nor"];
UIViewController *c4 = [[UIViewController alloc] init];
c4.tabBarItem.title = @"設置";
c4.tabBarItem.image = [UIImage imageNamed:@"tab_me_nor"];
//c.添加子控制器到ITabBarController中
tarbarVC.viewControllers = @[c1,c2,c3,c4];
//d.設置Window為主窗口並顯示出來
[self.window makeKeyAndVisible];
UITabBarControllerDelegate代理
復制代碼 代碼如下:
#pragma mark 該方法用於控制TabBarItem能不能選中
- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController;
改變UITabBarController當前顯示視圖的方法
三、UINavigationController導航控制器
UINavigationItem屬於MVC中的Model,封裝了要顯示在UINavigationBar上的數據:
title: 標題
titleView :標題視圖
leftBarButtonItem :左按鈕
rightBarButtonItem :右按鈕
下一個子視圖左側返回按鈕leftBarButtonItem的標題優先級:
UINavigationController常用的主要方法:
復制代碼 代碼如下:
#pragma mark 壓棧,把控制器壓入導航控制器子控制器棧中
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated;
#pragma mark 出棧,把導航控制器子控制器棧的棧頂彈出
- (void)popViewControllerAnimated:(BOOL)animated;
#pragma mark 多次出棧直到棧頂為指定控制器
- (void)popToViewController:(UIViewController *)viewController animated:(BOOL)animated;
#pragma mark 多次出棧直到棧頂為根控制器
- (void)popToRootViewControllerAnimated:(BOOL)animated;
四、模態窗口
復制代碼 代碼如下:
#pragma mark 從下方彈出指定的視圖控制器,賦予模態,即當前視圖關閉前,其他視圖上的內容無法操作
- (void)presentViewController:(UIViewController *)viewControllerToPresent animated:(BOOL)flag completion:(void (^)(void))completion;
#pragma mark 關閉模態窗口,該方法在模態窗口中調用
- (void)dismissViewControllerAnimated:(BOOL)flag completion:(void (^)(void))completion;