2015-04-03 24 views
0

所以我目前正在建立我的第一個應用程序,只是簡單的練習文本冒險的過程。基本前提是我希望能夠向用戶解釋冒險故事,展示故事並在每個可滾動頁面的末尾爲他們提供關於如何推進每個導致不同場景的故事的選項。什麼類型的segue應該用於iOS文本冒險應用程序?

我意識到我將需要分支許多不同的意見和segues,我目前使用現在模態segue場景之間過渡時,但我有這樣的擔心,我可能最終導致記憶問題通過這樣做?從我過去的理解是,模態地呈現下一個頁面只是把它拋在所有其他視圖之上是正確的嗎?

本質上,我只是試圖找到轉換的最佳選擇,因爲我仍然在學習基礎知識,這將是最有效的。最終,我會將數據傳遞給下一個視圖,所以在冒險結束時,我可以根據用戶的選擇向用戶展示他們的特徵值。有什麼想法嗎?

P.S.我想我之所以選擇禮物的原因是它有我找到的最好的轉換,使我想起一本書(找不到頁面翻轉過渡)

+1

如果你想要的東西看起來像一本書,然後使用UIPageViewController與頁面之間的捲曲轉換。在我看來,模態賽段被嚴重過度使用,特別是新程序員。模式的主要用途應該是一些短期行爲,在回到應用程序的主流程之前,您需要從用戶那裏獲得一些信息 - 將其視爲與主流程的中斷。 – rdelmar 2015-04-03 19:44:57

回答

0

這取決於你在哪裏展示模態。如果您從一個主視圖控制器呈現它,則先前的模式將被解除。

如果您要使用其他方法(例如導航控制器推送),它會持續構建視圖層次結構,並在用戶深入探險時導致大量內存佔用。

P.S.我想,我之所以選擇現在有模式到目前爲止是它有我發現最好的過渡,這讓我想起一本書(找不到翻頁過渡)

就個人而言,我只會用一個視圖控制器並使用transitionWithView函數使視圖生效。這將大大減少你的內存佔用,併爲用戶提供有趣的轉換。

class func transitionWithView(_ view: UIView, 
       duration duration: NSTimeInterval, 
        options options: UIViewAnimationOptions, 
       animations animations:() -> Void, 
       completion completion: ((Bool) -> Void)?) 

有了這個,你可以提供各種各樣的動畫過渡,甚至隨機它所以不知道哪一個是用來和很酷的功能。這裏是過渡常量

static var TransitionNone: UIViewAnimationOptions { get } 
static var TransitionFlipFromLeft: UIViewAnimationOptions { get } 
static var TransitionFlipFromRight: UIViewAnimationOptions { get } 
static var TransitionCurlUp: UIViewAnimationOptions { get } 
static var TransitionCurlDown: UIViewAnimationOptions { get } 
static var TransitionCrossDissolve: UIViewAnimationOptions { get } 
static var TransitionFlipFromTop: UIViewAnimationOptions { get } 
static var TransitionFlipFromBottom: UIViewAnimationOptions { get } 
0

爲避免出現內存問題,可以使用UIViewController' s -transitionFromViewController:toViewController:duration:options:animations:completion:方法交換您的控制器而不是故事板segue。您將在基本視圖控制器中調用此方法,該控制器顯示您的可見視圖控制器,類似UINavigationController如何處理此操作。

或者,考慮使用UIPageViewController如果你想要的東西看起來像一本書。

相關問題