[英]UISegmentedControl reload certain page
我正在為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()
進行此操作,但是當您多次執行此操作時,這會使應用程序變慢。
有沒有更正確的方法來做到這一點? 提前致謝
我認為調用viewDidLoad()
不是實現此目的的正確方法,而是實現一個新功能,該功能應包含負責在UI組件中加載數據的代碼,例如:
override func viewDidLoad() {
super.viewDidLoad()
reloadUI()
}
func reloadUI() {
// filling UI components with desired data, such as:
// myLabel.text = "Hello World"
}
在代碼中的某個位置(要重新加載的位置),應調用reloadUI()
方法,而不是調用viewDidLoad()
。
希望這會有所幫助。
嘗試這個
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方法將在初始化后立即調用,而不是每次您單擊選項卡項目時都將被調用
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.