我有一個進度條(帶有自己的控制器)。根據哪個視圖可見,該欄應顯示在不同的視圖中。由於進度會一樣,如果可能的話,我不想在許多視圖中創建許多進度欄,而是希望在所有這些視圖中使用相同的實例。同樣在這種情況下,當我需要更改進度條的任何屬性時,它將通常被反映出來,這是必需的。iOS - 如何在Swift的不同視圖控制器中使用小視圖
請給我建議我該如何使用這個共同的觀點。而且如果我的策略是錯誤的,那麼這種情況下的設計會更好。
我有一個進度條(帶有自己的控制器)。根據哪個視圖可見,該欄應顯示在不同的視圖中。由於進度會一樣,如果可能的話,我不想在許多視圖中創建許多進度欄,而是希望在所有這些視圖中使用相同的實例。同樣在這種情況下,當我需要更改進度條的任何屬性時,它將通常被反映出來,這是必需的。iOS - 如何在Swift的不同視圖控制器中使用小視圖
請給我建議我該如何使用這個共同的觀點。而且如果我的策略是錯誤的,那麼這種情況下的設計會更好。
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
:)
當視圖來自不同的故事板時,沒有任何直接重定向,我該如何處理它?例如,對於轉換順序,viewA - > viewB - > viewC和我只需要在viewA和viewC中顯示viewBox。 –
你能澄清一點嗎? 「當視圖來自不同的故事板時,沒有直接重定向」 – impression7vx
可以說,我在viewA中顯示viewBox,然後我去viewB,我不需要顯示viewBox。然後我再次去viewC,我需要再次展示它。其他情況可能是我退出viewA然後從父視圖我去viewC。我如何處理這些情況。 –
創建一個聲明進度條並將進度條添加到超級視圖的類。所以當視圖控制器發生變化時,進度條保持在同一位置 – good4pc
我不知道爲什麼這個問題是downvoted?誰能解釋一下? –