成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

ios5中UIViewController新使用方法

移動開發 iOS
下面詳細介紹一下addChildViewController,一個ViewController可以添加多個子ViewController,但是這些子ViewController只有一個是顯示到父視圖中的,可以通過transitionFromViewController:toViewController:duration:options:animations:completion:這個方法轉換顯示的子視圖。同時加入相應的動畫。

在iOS5中,ViewController中新添加了下面幾個方法:

  1. addChildViewController:  
  2. removeFromParentViewController  
  3. transitionFromViewController:toViewController:duration:options:animations:completion: 
  4. willMoveToParentViewController:  
  5. didMoveToParentViewController: 

下面詳細介紹一下addChildViewController,一個ViewController可以添加多個子ViewController,但是這些子ViewController只有一個是顯示到父視圖中的,可以通過transitionFromViewController:toViewController:duration:options:animations:completion:這個方法轉換顯示的子視圖。同時加入相應的動畫。下面以一個例子來說明,最后實現的效果:

image

點擊其中的按鈕如下:

imageimageimageimage

下面詳細介紹一下上述效果的實現:

  1. 創建項目,changeViewController。
  2. 添加相應的viewController,MainViewController、FirstViewController、SecondViewController、ThirdViewController。如下圖:

image

3.把MainViewController添加到window中。

  1. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions  
  2. {  
  3.     self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];  
  4.     // Override point for customization after application launch.  
  5.     MainViewController *mainViewController=[[MainViewController alloc] initWithNibName:@"MainViewController" bundle:nil];  
  6.     self.window.rootViewController=mainViewController;  
  7.     [self.window makeKeyAndVisible];  
  8.     return YES;  

4.在MainViewController中添加三個按鈕,并且連接onClickbutton方法。

5.在MainViewController中添加三個子controller

  1. #pragma mark – View lifecycle - (void)viewDidLoad  
  2. {  
  3.     [super viewDidLoad];  
  4.     // Do any additional setup after loading the view from its nib.  
  5.      
  6.     FirstViewController *firstViewController=[[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil];  
  7.     [self addChildViewController:firstViewController];  
  8.      
  9.     SecondViewController *secondViewController=[[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];  
  10.     [self addChildViewController:secondViewController];  
  11.      
  12.      
  13.     ThirdViewController *thirdViewController=[[ThirdViewController alloc] initWithNibName:@"ThirdViewController" bundle:nil];  
  14.     [self addChildViewController:thirdViewController];  
  15.      
  16.     [contentView addSubview:thirdViewController.view];  
  17.     currentViewController=thirdViewController;  

其中要把其中的一個子controller的view添加到根視圖中,這樣才能顯示出相應的視圖。

6.點擊按鈕,切換視圖。

  1. -(IBAction)onClickbutton:(id)sender  
  2. {  
  3.     FirstViewController *firstViewController=[self.childViewControllers objectAtIndex:0];  
  4.     ThirdViewController *thirdViewController=[self.childViewControllers objectAtIndex:2];  
  5.     SecondViewController *secondViewController=[self.childViewControllers objectAtIndex:1];  
  6.     if ((currentViewController==firstViewController&&[sender tag]==1)||(currentViewController==secondViewController&&[sender tag]==2) ||(currentViewController==thirdViewController&&[sender tag]==3) ) {  
  7.         return;  
  8.     }  
  9.     UIViewController *oldViewController=currentViewController;  
  10.     switch ([sender tag]) {  
  11.         case 1:  
  12.         {  
  13.             NSLog(@"留言及回復");  
  14.             [self transitionFromViewController:currentViewController toViewController:firstViewController duration:4 options:UIViewAnimationOptionTransitionFlipFromLeft animations:^{  
  15.             }  completion:^(BOOL finished) {  
  16.                 if (finished) {  
  17.                     currentViewController=firstViewController;  
  18.                 }else{  
  19.                     currentViewController=oldViewController;  
  20.                 }  
  21.             }];  
  22. }  
  23.             break;  
  24.         case 2:  
  25.         {  
  26.             NSLog(@"生日提醒");  
  27.             [self transitionFromViewController:currentViewController toViewController:secondViewController duration:1 options:UIViewAnimationOptionTransitionFlipFromTop animations:^{  
  28.                  
  29.             }  completion:^(BOOL finished) {  
  30.                 if (finished) {  
  31.                   currentViewController=secondViewController;  
  32.                 }else{  
  33.                     currentViewController=oldViewController;  
  34.                 }  
  35.             }];  
  36.         }  
  37.             break;  
  38.         case 3:  
  39.         {  
  40.             NSLog(@"好友申請");  
  41.             [self transitionFromViewController:currentViewController toViewController:thirdViewController duration:1 options:UIViewAnimationOptionTransitionFlipFromBottom animations:^{  
  42.                  
  43.             }  completion:^(BOOL finished) {  
  44.                 if (finished) {  
  45.                      currentViewController=thirdViewController;  
  46.                 }else{  
  47.                     currentViewController=oldViewController;  
  48.                 }  
  49.             }];  
  50.         }  
  51.             break;  
  52.         default:  
  53.             break;  
  54.     }  

其中我把按鈕設置成不同的tag了。

這時候點擊按鈕,就可以切換子視圖了。

這樣寫的好處: 多個UIViewController之間切換可以添加動畫 當內存警告的時候,可以把當前不是激活狀態的ViewController內存釋放。

可以把代碼更好分開 項目源代碼:http://easymorse-iphone.googlecode.com/svn/trunk/changeViewController/

責任編輯:佚名 來源: 王軍的博客
相關推薦

2012-04-04 22:36:52

iOS5

2012-01-18 13:51:39

2018-06-20 10:34:56

堆棧iOSswift

2011-09-19 15:42:33

TwitteriOS5

2013-07-22 14:47:56

iOS開發iOS5中ASIHtt

2011-08-19 13:51:12

2011-08-09 14:25:43

蘋果iCloudiOS5

2013-07-25 14:12:53

iOS開發學習UITableView

2013-03-25 13:41:10

iOS5ARC內存管理

2011-07-21 14:42:45

iOS UIViewCont 內存

2011-06-09 10:51:53

iPhone 3GSiOS5蘋果

2011-08-16 14:59:31

IOS開發ViewDidUnloiOS 5

2010-10-08 14:27:25

JavascriptSplit

2010-10-09 10:30:03

JS event

2011-06-14 10:18:58

QThread Qt 線程

2012-05-27 20:21:40

2012-03-06 10:17:45

iOS SQLite3iOSSQLite3

2011-02-24 13:09:10

FireFTP

2012-01-13 09:55:54

jQuery

2011-08-10 16:08:02

iPhoneProtocol協議
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕91 | 成人国产综合 | 成人免费一级 | 成人在线激情 | 亚洲国产aⅴ成人精品无吗 亚洲精品久久久一区二区三区 | 日本激情视频中文字幕 | 亚洲国产成人在线 | 一区二区电影 | 美女张开腿露出尿口 | 精品国产乱码久久久久久久久 | 亚洲欧美在线一区 | 天天干夜夜操 | 一区二区三区亚洲 | 精品国产一区二区三区久久久蜜月 | 日日噜噜噜夜夜爽爽狠狠视频97 | 羞羞视频在线网站观看 | 免费观看黄色一级片 | 亚洲精品视频免费观看 | 国产999精品久久久久久绿帽 | 91在线资源| 99热精品在线 | 人人玩人人添人人澡欧美 | 一级特黄a大片 | 国产一区二区三区欧美 | 成人精品一区亚洲午夜久久久 | 国产午夜在线 | 日韩在线免费视频 | 日本大香伊一区二区三区 | 久久久久久久久久久久久9999 | 国产女人与拘做受视频 | 日韩小视频在线 | 国产一区二区三区 | 在线观看亚洲专区 | 国产精品视频中文字幕 | 日韩不卡三区 | 日韩视频在线观看中文字幕 | 男女视频在线观看网站 | 亚洲精品视频三区 | 亚洲视频中文字幕 | 国产四区 | 亚洲一区二区三区在线免费 |