2014-10-28 66 views
0

所以我繼承了一個在工作中的舊項目,這個項目被分解成了大量不同的故事板。雖然這並沒有太大的麻煩,但客戶端現在需要一個自定義的segue動畫,從Storyboard A上的View Controller到Storyboard B上的View Controller,並且我無法想象出我的生活。如何在兩個故事板上執行自定義輪播?

如果視圖位於同一個Storyboard上,我就可以製作動畫了,但是我無法將它連接到另一個Storyboard的轉換。

+0

您是否嘗試過右鍵單擊從故事板A拖動到故事板B並按下顯示動畫? – alex 2014-10-28 15:29:58

回答

1

你不能沒有使用的方法來做到這點,因爲你無法連接故事板之間的SEGUE。您可以在其他故事板中手動實例化控制器,然後執行想要呈現的自定義動畫或將其推入代碼中。由於使用segue(而不是在代碼中轉換到新控制器)的主要原因是您可以在故事板中看到控制器之間的連接,因此沒有太多理由在您的案例中使用segue。

如果你真的堅持使用segue,那麼你需要在你的第一個故事板中放置一個「虛擬」控制器,並將其連接到自定義的segue。那個segue中的代碼爲你想要在其他故事板上延續的真實控制器切換出虛擬控制器。你可以在這裏找到對這種技術的參考,http://spin.atomicobject.com/2014/03/06/multiple-ios-storyboards/

+0

謝謝!我最終沒有用segue去做,只是做了一個自定義的動畫,並在完成塊結束時忽略當前的視圖而沒有動畫。 – ImpurestClub 2014-10-30 19:20:14

0

查找下面代碼,用於訪問另一個故事板視圖:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
    if ([segue.identifier isEqualToString:@"storyboard_A_view_identifier"]) { 
     UIStoryboard *storyBoardB = [UIStoryboard storyboardWithName:@"storyBoardB" bundle:nil]; 
     UIViewController *anotherViewController = [storyBoardB instantiateViewControllerWithIdentifier:@"storyboard_B_view_identifier"]; 
     // use anotherViewController and perform custom animation on it 
    } 
}