2015-06-30 45 views
0

這個問題主要是關於如何構建我的應用程序。當應用程序加載時,用戶可以從要播放的視頻列表中進行選擇,但實際的視頻播放器位於不同的視圖控制器上。目前,我只是將該視圖控制器保存在內存中,以便在用戶瀏覽整個應用程序時,視頻可以連續播放。iOS - 以編程方式在app上加載視圖didFinishingLaunching

所以問題是,如果用戶在加載該電影視圖控制器之前選擇一個視頻,當然不會有任何事情發生。

我該如何構建我的應用程序,以便視頻可以連續播放,無論電影播放器​​視圖控制器是否保存在內存中?這可能嗎?

回答

0

我不是100%確定你要做什麼;但在XCode中創建的默認項目將「以編程方式在app didFinishingLaunching上加載視圖」,而無需進一步編碼。

一般而言,您應該使用初始視圖或視圖控制器(如導航控制器)構建應用程序;並在目標視圖的「viewDidLoad」方法中啓動任何可見的操作。

在你的情況下,我會建議直接加載視頻控制器;如果沒有選擇視頻,然後以編程方式繼續播放視頻選擇器視圖。

0

通常情況下,我創造我的項目是這樣一個結構,我認爲你需要採取OverlayViewController一個特殊的外觀,檢查出一個例子:

MainViewController - As rootViewController 
|- content (Any view controller to be presented, yes inside MainViewController) 
|- OverlayViewController (a view controller over content) 

這種結構允許您更改內容,無需改變整個層次結構。

MainViewController你需要一個方法來改變當前的內容到另一個,有你如何可以做一個簡單的例子:

// PS I'm not sure if this will work in the first try, I wrote from my mind right now :) 
func changeViewController (controller: UIViewController) { 
    let from: UIViewController 

    if childViewControllers.count > 0 { 
    from = childViewControllers.first as! UIViewController 
    } 
    else { 
    presentViewController(controller) 
    return 
    } 

    let transitionContext = SomeViewControllerContextTransitioning (
    fromViewController: from, 
    toViewController: controller 
) 

    transitionContext.onAnimationComplete = { success in 

    if !success { 
     // TODO: Error fallback 
    } 
    else { 
     from.view.removeFromSuperview() 
     from.removeFromParentViewController() 
     controller.didMoveToParentViewController(self) 
    } 

    } 

    from.willMoveToParentViewController(nil) 
    addChildViewController(controller) 

    SomeAnimator().animateTransition(transitionContext) 
} 

最後,在你的MainViewController你可以觀察或控制您的視頻回放。

我希望這可以幫助你。

相關問題