0

中的視圖之間沒有顯示過渡我寫了一個自定義UIStoryboardSegue。在自定義UIStoryboardSegue

我CustomSegue.m文件的唯一代碼:

-(void) perform { 
    UIViewController* sourceViewController = (UIViewController *) self.sourceViewController; 
    UIViewController* destinationViewController = (UIViewController *) self.destinationViewController; 

    UIWindow* window = UIApplication.sharedApplication.keyWindow; 
    window.rootViewController = destinationViewController; 
    window.rootViewController = sourceViewController;  

    [UIView transitionWithView: sourceViewController.view.window 
         duration: 0.5 
         options: UIViewAnimationOptionTransitionFlipFromLeft 
         animations: ^{window.rootViewController = destinationViewController;} 
         completion: ^(BOOL finished) {} 
    ]; 
} 

如果我成立了一個故事板所以它只是有兩個UIViewControllers,與第一個鏈接一個按鈕,第二,按計劃所有作品:從左側過渡處翻轉。

但是:如果我在第一個UIViewController之前放置了一個UINavigationController,那麼現在segue會調出第二個視圖控制器,而不會從左側翻頁。

這是怎麼回事?爲什麼不使用導航控制器進行過渡?

感謝您的幫助!

(如果你有興趣,我使用的是自定義的賽格瑞的理由是,這樣我可以有後出現的一些介紹頁面。我被this Stackoverflow answer激發了主詳細視圖)。

回答

1

我從來沒有解決這個問題,但發現一個簡單的解決方法。我從前面移除了導航控制器,但是在segue之後放置了一個導航控制器。然後,我在源屏幕的頂部放置了一個簡單的導航欄。 segue還觸發了向目標視圖控制器添加後退按鈕。因此,我的自定義賽格變成了「僞推」賽格。

+0

我已經使用您的示例代碼,它的工作原理完美。 – BlueLettuce16 2013-04-16 20:21:36

+0

我很高興聽到它! – 2013-04-23 05:26:10