2016-07-25 32 views
0

我有一個進度條(帶有自己的控制器)。根據哪個視圖可見,該欄應顯示在不同的視圖中。由於進度會一樣,如果可能的話,我不想在許多視圖中創建許多進度欄,而是希望在所有這些視圖中使用相同的實例。同樣在這種情況下,當我需要更改進度條的任何屬性時,它將通常被反映出來,這是必需的。iOS - 如何在Swift的不同視圖控制器中使用小視圖

請給我建議我該如何使用這個共同的觀點。而且如果我的策略是錯誤的,那麼這種情況下的設計會更好。

+0

創建一個聲明進度條並將進度條添加到超級視圖的類。所以當視圖控制器發生變化時,進度條保持在同一位置 – good4pc

+0

我不知道爲什麼這個問題是downvoted?誰能解釋一下? –

回答

1

1)那麼你有2個選項。你可以聲明一個新的類ViewBox(或其他名稱),然後用你的代碼裏面

第一個視圖控制器

var box:ViewBox = ViewBox() 

當你Segue公司或過渡到下一個屏幕,你可以有一個預定義變量var box:ViewBox! 。當你按下一個按鈕,然後說,按鈕有一個叫transition.

//Now setup the transition inside the Storyboard and name the identifier "toThirdViewController" 
override func prepareForSegue(segue:UIStoryboardSegue, sender:AnyObject?) { 
    if(segue.identifier == "toThirdViewController") { 
     var vc = segue.destinationViewController as! `nextViewController` //The class of your next viewcontroller goes here 
     vc.box = self.box 
    } 
    //Since The SecondViewController doesn't need ViewBox, we don't need it there. 
} 

函數,其中

nextViewController:UIViewController { 
    var box:ViewBox! 
} 

或者你可以做一個更簡單的方法,那就是看一個UIPageViewController :)

+0

當視圖來自不同的故事板時,沒有任何直接重定向,我該如何處理它?例如,對於轉換順序,viewA - > viewB - > viewC和我只需要在viewA和viewC中顯示viewBox。 –

+0

你能澄清一點嗎? 「當視圖來自不同的故事板時,沒有直接重定向」 – impression7vx

+0

可以說,我在viewA中顯示viewBox,然後我去viewB,我不需要顯示viewBox。然後我再次去viewC,我需要再次展示它。其他情況可能是我退出viewA然後從父視圖我去viewC。我如何處理這些情況。 –

相關問題