2016-11-14 86 views
0

我正在爲我的UISegmentedControl使用第三方庫。該頁面被初始化如下:UISegmentedControl重新加載特定頁面

func carbonTabSwipeNavigation(carbonTabSwipeNavigation: CarbonTabSwipeNavigation, viewControllerAtIndex index: UInt) -> UIViewController { 
    switch index { 
    case 0: 
     return self.storyboard!.instantiateViewControllerWithIdentifier("FolderOverviewController") as! FolderOverviewController 
    case 1: 
     return self.storyboard!.instantiateViewControllerWithIdentifier("TopFoldersTab") as! TopFoldersTab 
    case 2: 
     return self.storyboard!.instantiateViewControllerWithIdentifier("CategoriesFolderTab") as! CategoriesFolderTab 
    default: 
     return self.storyboard!.instantiateViewControllerWithIdentifier("CategoriesFolderTab") as! CategoriesFolderTab 
    } 

} 

當我按下第三段,用戶可以去進一步向下查看更多詳情(通過子視圖在同一頁上)。我希望頁面重新加載,每次我再次選擇第三個分段。 (返回到原來的CategoriesFolderTab頁面)。目前我正在使用ViewDidLoad()來做這件事,但是當你多次使用它時,這會讓應用程序變慢。

有沒有更正確的方法來做到這一點?在此先感謝

回答

0

我認爲調用viewDidLoad()不是實現這一目標的正確方法,相反,實施應該包含負責UI組件加載數據代碼的新功能,例如:

override func viewDidLoad() { 
    super.viewDidLoad() 

    reloadUI() 
} 

func reloadUI() { 
    // filling UI components with desired data, such as: 
    // myLabel.text = "Hello World" 
} 

並且在代碼中的某處(您要重新加載的地方),您應該調用reloadUI()方法,而不是調用viewDidLoad()

希望這有助於。

0

嘗試你點擊一個選項卡項目這個

Let folderOverVC = self.storyboard!.instantiateViewControllerWithIdentifier("FolderOverviewController") as! FolderOverviewController 
Let topFoldersTab = self.storyboard!.instantiateViewControllerWithIdentifier("TopFoldersTab") as! TopFoldersTab 
Let categoriesFolderTab = self.storyboard!.instantiateViewControllerWithIdentifier("CategoriesFolderTab") as! CategoriesFolderTab 



func carbonTabSwipeNavigation(carbonTabSwipeNavigation: CarbonTabSwipeNavigation, viewControllerAtIndex index: UInt) -> UIViewController { 
switch index { 
case 0: 
    return folderOverVC 
case 1: 
    return topFoldersTab 
case 2: 
    return categoriesFolderTab 
default: 
    return categoriesFolderTab 
} 

} 

這個初始化視圖控制器一次,所以它們各自的viewDidLoad方法被調用初始化一次,每次都不