2012-03-30 84 views
0

我目前正在設計一個應用程序,它從服務中提取地圖數據並將它們呈現爲MKMapView上的引腳。另外,我的應用程序是使用故事板設計的,每個場景都嵌入在導航控制器中。我正在處理的功能要求我爲用戶提供在給定結果集的地圖視圖和表視圖之間切換的功能。爲了提供這種功能,我在工具欄中包含了一個條形按鈕項(當按下時)應該將當前視圖和第二個視圖翻轉。FlipView Transition

到目前爲止,我一直在嘗試以下代碼,果:

MapListViewController *map = [[MapListViewController alloc]init]; 
[UIView beginAnimations:@"flip animation" context:nil]; 
[UIView setAnimationDuration:3.0]; 
[UIView setAnimationCurve:UIViewAnimationCurveLinear]; 
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:map.view cache:YES]; 

[self.mapView removeFromSuperview]; 
[self.view addSubview:map.view]; 
[UIView commitAnimations]; 

我最初得到這個方法從here,但它似乎並沒有對我的工作。

一對夫婦更多的事情需要注意:

  • 翻轉視圖轉變應該只改變當前的頂部和底部的導航欄中顯示的視圖。

  • 以模態方式呈現新視圖不是一種選擇,因爲我將丟失導航控制器的網站。

  • 負責以列表格式(即UITableView)顯示結果集的視圖/視圖控制器包含在單個xib文件中,其中應用程序的其餘部分位於故事板內。

問題

有什麼問題我目前的執行情況?它應該如何修改?

回答

3

我沒有用你的方法,但我沒有實現使用UIView類方法翻轉一些視圖。這非常簡單直接。有關其他選項,請參閱文檔。

[UIView transitionFromView:self.firstVC.view toView:self.secondVC.view duration:1.0 options:UIViewAnimationOptionTransitionFlipFromLeft completion:^(BOOL finished) { 
    // add any completion code here if needed. 
}]; 
+0

工作就像一個魅力。謝謝! – dpalmajr 2012-04-01 01:36:18

0

嗨實施一些像這樣的東西應該幫助你

推使用這個..

[UIView beginAnimations:nil context:NULL]; 
    [UIView setAnimationDuration:1]; 
    [navigationController pushViewController:viewController animated:NO]; 
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:navigationController.view cache:NO]; 
    [UIView commitAnimations]; 

對於POP使用此

[UIView beginAnimations:nil context:NULL]; 
    [UIView setAnimationDuration:1]; 
    [navigationController popViewControllerAnimated:NO]; 
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:navigationController.view cache:NO]; 
    [UIView commitAnimations];